線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1036
推到 Plurk!
推到 Facebook!

如何執行 類別內的 某函數, 而不用函數名?

答題得分者是:pgdennis
sams
一般會員


發表:18
回覆:20
積分:12
註冊:2003-04-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-11-04 12:21:42 IP:211.76.xxx.xxx 未訂閱
各位大大, 小弟目前有一個問題.. 如果我有一個類別如下: Tcs001= class public function tt: boolean; end; var xx: Tcs001; 要執行 tt, 除了 xx.tt, 還有其他的方法嗎?
ha0009
版主


發表:16
回覆:507
積分:639
註冊:2002-03-16

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-11-04 12:30:41 IP:61.30.xxx.xxx 未訂閱
你好:
    試試下列的方式
>    < src="http://sourceprovide.deepen.com.tw/K_Top/bp.gif">
        
sams
一般會員


發表:18
回覆:20
積分:12
註冊:2003-04-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-11-04 13:10:51 IP:211.76.xxx.xxx 未訂閱
[quote] with xx do begin if tt then [/code] 先謝謝 ha0009 的回應.. 可能是題意不清, 我是想取出某函數的位址(或其他), 再依據取出的 東西, 去執行某函數.. 剛才小弟查了一下資料, 可用 MethodAddress 取出某函數的位址, 且函數可以執行, 但是傳進去的參數有誤, 請問要怎麼改才好呢? Tcs001= class(TObject) published function tt(i: integer): Boolean; procedure aa; end; procedure Tcs001.aa; type func= function(i: integer): boolean; var pp: func; begin pp:= Tcs001.MethodAddress('tt'); pp(1000); end; 發表人 - sams 於 2003/11/04 13:14:37
pgdennis
資深會員


發表:41
回覆:526
積分:443
註冊:2002-05-23

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-11-04 14:03:59 IP:218.163.xxx.xxx 未訂閱
Tcs001= class(TObject)  published   function tt(i: integer): Boolean;   procedure aa; end;    procedure Tcs001.aa; type func= function(i: integer): boolean; =>type func= function(i: integer): boolean of obejct; var pp: func; begin pp:= Tcs001.MethodAddress('tt'); =>@pp:= Tcs001.MethodAddress('tt'); pp(1000); end; http://www.delphipraxis.net/post87477.html 參考一下 永遠追不上技術更新的速度
------
星期一,二...無窮迴圈@@
pgdennis
資深會員


發表:41
回覆:526
積分:443
註冊:2002-05-23

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-11-04 14:04:20 IP:218.163.xxx.xxx 未訂閱
Tcs001= class(TObject)  published   function tt(i: integer): Boolean;   procedure aa; end;    procedure Tcs001.aa; type func= function(i: integer): boolean; =>type func= function(i: integer): boolean of object; var pp: func; begin pp:= Tcs001.MethodAddress('tt'); =>@pp:= Tcs001.MethodAddress('tt'); pp(1000); end; http://www.delphipraxis.net/post87477.html 參考一下 永遠追不上技術更新的速度
------
星期一,二...無窮迴圈@@
ha0009
版主


發表:16
回覆:507
積分:639
註冊:2002-03-16

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-11-04 14:09:23 IP:61.30.xxx.xxx 未訂閱
你好:
  Tcs001= class(TObject)
    published
      function tt(i: integer): Boolean;
      procedure aa;
  end;      procedure Tcs001.aa;
    type func= function(i: integer): boolean of object;
    var pp: func;
  begin
    pp:= Tcs001.tt;
    pp(1000);
  end;
sams
一般會員


發表:18
回覆:20
積分:12
註冊:2003-04-14

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-11-04 14:23:30 IP:211.76.xxx.xxx 未訂閱
感謝兩位大大的回應, 二位提供的方法, 小弟都有試過, 不過 ha0009大大提供的好像不行, 所以我把得分給 pgdennis.. Thanks.. 發表人 - sams 於 2003/11/04 14:25:39
系統時間:2024-05-18 12:43:11
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!