請教Call a function whose name is stored in a string |
尚未結案
|
blue
中階會員 發表:170 回覆:136 積分:81 註冊:2002-04-15 發送簡訊給我 |
Hi,各位先進大家好:
小弟想執行由字串內容指定的Procedure(不使用If Then), 找到程式如下,可是執行卻會出現 Invalid Class Typecast, 請問是何原因? 謝謝! Type THelper = class public class procedure Test; end; function ExecuteMethod(AClass : TClass; AMethodName : String; const AArgs: Array of TValue) : TValue; var RttiContext : TRttiContext; RttiMethod : TRttiMethod; RttiType : TRttiType; RttiObject : TObject; begin RttiObject := AClass.Create; try RttiContext := TRttiContext.Create; RttiType := RttiContext.GetType(AClass); RttiMethod := RttiType.GetMethod(AMethodName); Result := RttiMethod.Invoke(RttiObject,AArgs); finally RttiObject.Free; end; end; procedure TForm1.Button1Click(Sender: TObject); begin ExecuteMethod(THelper, 'Test, []); end; |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |