回傳物件?? |
答題得分者是:g710912
|
ladies
一般會員 發表:7 回覆:18 積分:5 註冊:2007-08-29 發送簡訊給我 |
|
g710912
一般會員 發表:1 回覆:6 積分:21 註冊:2007-01-15 發送簡訊給我 |
當然可以阿~
雖然你回傳的是TObject轉型一下就可以用了 [code delphi] function Tform.AA(type:string):TObject; begin result := nil; if type = fa then result:= 父.create; else if type = ma then result:= 母.create; : : end; procedure Tform.BB; var temp: TObject; begin temp := AA; if temp <> nil then 父(temp).操作; end; [/code] 大概就類似這樣吧
編輯記錄
g710912 重新編輯於 2008-04-21 22:50:43, 註解 無‧
|
ladies
一般會員 發表:7 回覆:18 積分:5 註冊:2007-08-29 發送簡訊給我 |
|
g710912
一般會員 發表:1 回覆:6 積分:21 註冊:2007-01-15 發送簡訊給我 |
你想要的是這樣嗎???
[code delphi] type TMyObj = class procedure SayHello; virtual; abstract; end; TFa = class(TMyObj) procedure SayHello; override; end; TMa = class(TMyObj) procedure SayHello; override; end; type TForm1 = class(TForm) private function GetObj(ObjName: string): TMyObj; procedure aaa; public { Public declarations } end; procedure TMa.SayHello; begin showmessage('i am mother'); end; procedure TFa.SayHello; begin showmessage('i am father'); end; procedure TForm1.aaa; var temp: TMyObj; begin temp := GetObj('fa'); if temp <> nil then temp.SayHello; end; function TForm1.GetObj(ObjName: string): TMyObj; begin result := nil; if ObjName = 'fa' then result := TFa.Create; if ObjName = 'ma' then result := TFa.Create; end; [/code] |
ladies
一般會員 發表:7 回覆:18 積分:5 註冊:2007-08-29 發送簡訊給我 |
|
ladies
一般會員 發表:7 回覆:18 積分:5 註冊:2007-08-29 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |