MethodAddress 的問題, 讀不到物件內的變數.. |
尚未結案
|
sams
一般會員 ![]() ![]() 發表:18 回覆:20 積分:12 註冊:2003-04-14 發送簡訊給我 |
小弟使用MethodAddress, 儲存類別內的函數位址, 以方便執行
某函數..
現在問題來了, 當我用這個類別定義了一個全域變數時, 發現
執行某函數時, 會抓不到此物件內的任何變數, 有解決的方法嗎? 程式如下.. type
Txx= class
public
sss: string;
constructor Create;
published
procedure p001;
procedure p002;
end; implementation
var xx: Txx; constructor Txx.Create;
begin
sss:= 'test';
end; procedure Txx.p001;
begin
showmessage(sss);
end; procedure Txx.p002;
type func=procedure of object;
var f: func;
begin
//主要是執行 p001 @f:= Txx.MethodAddress('p001');
f;
end; procedure TFM_main.btnClick(Sender: TObject);
begin
xx.p002; //會抓不到變數 sss
end; procedure TFM_main.FormCreate(Sender: TObject);
begin
xx:= Txx.Create;
end; procedure TFM_main.FormClose(Sender: TObject; var Action: TCloseAction);
begin
xx.Free;
end;
|
william
版主 ![]() ![]() ![]() ![]() ![]() 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
http://delphi.ktop.com.tw/link.asp?topic_id=30217
procedure Txx.p002; type func=procedure of object; var f: func; begin TMethod(f).Code := Txx.MethodAddress('p001'); TMethod(f).Data := xx; f; end; |
sams
一般會員 ![]() ![]() 發表:18 回覆:20 積分:12 註冊:2003-04-14 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |