▶Rtti를 이용한 함수명으로 함수를 찾아서 호출
uses System.Rtti; var FPersistentClass: TPersistentClass; Rtti: TRttiContext; RTyp: TRttiType; RMtd: TRttiMethod; Arg: array of TValue; RetValue: TValue; begin FPersistentClass := GetClass('CLASS NAME'); if FPersistentClass <> nil then begin Rtyp := Rtti.GetType(FPersistentClass); for RMtd in RTyp.GetMethods do if (RMtd.Parent = RTyp) and (RMtd.Name = 'METHOD NAME') then begin SetLength(Arg, 2); // Set Parameter count Arg[0] := AObject; // Parameters into Arg Arg[1] := jObj; // PROCEDURE type RMtd.Invoke(FPersistentClass, Arg); <-- Run Procedure // FUNCTION type RetValue := RMtd.Invoke(FPersistentClass, Arg); <-- Run function Break; end; end;RetValue is function return value
'Delphi' 카테고리의 다른 글
IWebBrowser2 with Delphi (0) | 2018.09.28 |
---|---|
7Zip with Delphi (펌) (0) | 2018.09.21 |
Overriding AsString in TFields(TStringField or TWideStringField...) (0) | 2018.09.10 |
ApplicationEvent.OnException 한곳에서 처리 (0) | 2018.09.10 |
FireDAC DataSet의 변경된 Record 확인 (0) | 2018.09.10 |