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

回傳物件??

答題得分者是:g710912
ladies
一般會員


發表:7
回覆:18
積分:5
註冊:2007-08-29

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-04-21 16:02:47 IP:59.120.xxx.xxx 訂閱
不好意思,小女子最近在學習寫物件
想詢問一個問題
假設我總共寫了四顆物件:父、母、子、女
我要依不同的情況去使用(在同一個form內)
不曉得我可否回傳物件,例如:
function Tform.AA(type:string):TObject;
begin
if type = fa then
result:= 父
else
if type = ma then
result:= 母


end;
如果我的問題太蠢就別理我了 = =
sorry~

g710912
一般會員


發表:1
回覆:6
積分:21
註冊:2007-01-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-04-21 22:48:08 IP:125.225.xxx.xxx 訂閱
當然可以阿~
雖然你回傳的是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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-04-22 10:35:18 IP:61.219.xxx.xxx 訂閱
sorry~可是大大你這樣寫我看起來怪怪的!!= =
我是想因不同的type去呼叫不同的物件
您的程式碼看來是要一個一個物件操作

還是我有哪裡搞錯了...= =a
g710912
一般會員


發表:1
回覆:6
積分:21
註冊:2007-01-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-04-22 11:45:19 IP:220.135.xxx.xxx 訂閱
你想要的是這樣嗎???
[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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-04-22 16:54:43 IP:61.219.xxx.xxx 訂閱
嗯...差不多是這樣!
不過我後來發現還有很多不同的地方,接手的程式有點亂!
看起來花花..@@..
我已經利用另一個方法解決了,謝謝這你唷!
阿哩阿豆
ladies
一般會員


發表:7
回覆:18
積分:5
註冊:2007-08-29

發送簡訊給我
#6 引用回覆 回覆 發表時間:2008-04-23 17:06:13 IP:59.120.xxx.xxx 訂閱
我又試寫了一下您的做法
終於可以做到我要的效果了
程式精簡了很多 (大笑)
真是太感謝您了!^__________^
系統時間:2024-05-06 5:59:07
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!