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

如何讓自訂class得知擁有它的是哪個Form

答題得分者是:yubad2000
lacsar
一般會員


發表:1
回覆:1
積分:0
註冊:2007-10-30

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-12-03 11:49:34 IP:220.130.xxx.xxx 訂閱
最近在練習用Delphi寫車子
已經建好TCar這個class
以及控制面板TControlForm
TControlForm的public區宣告了CarX:TCar;

我先建了一個Form1
然後在TForm1.FormCreate中create cf1與cf2
[code delphi]
procedure TForm1.FormCreate(Sender: TObject);
begin
cf1:=TControlForm.Create(self);
cf2:=TControlForm.Create(self);
cf1.Show;
cf2.Show;
end;

[/code]

會這樣做是因為希望程式要增加車子數量時
只要在TForm1.FormCreate多建一個TControlForm就好
但是TCar做完某些計算後,需要回頭要求TControlForm內的元件作狀態變化
有什麼方法可以讓TCar要如何知道擁有它的是哪個TControlForm?(cf1 or cf2)
請各位大大不吝指教
感恩~
yubad2000
中階會員


發表:0
回覆:44
積分:78
註冊:2007-09-30

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-12-03 12:55:18 IP:66.171.xxx.xxx 未訂閱
可能需要改寫TCar的constructor to
TCar.create(sender:TObject)並將sender儲存於物件中, .
So, 在TControlForm使用TCar時, 必須呼叫 CarX.create(self);
當TCar class內的程式需用到TControlForm時,
取出sender並轉換成TControlForm即可.

===================引 用 lacsar 文 章===================
最近在練習用Delphi寫車子
已經建好TCar這個class
以及控制面板TControlForm
TControlForm的public區宣告了CarX:TCar;

我先建了一個Form1
然後在TForm1.FormCreate中create cf1與cf2
[code delphi]
procedure TForm1.FormCreate(Sender: TObject);
begin
cf1:=TControlForm.Create(self);
cf2:=TControlForm.Create(self);
cf1.Show;
cf2.Show;
end;

[/code]

會這樣做是因為希望程式要增加車子數量時
只要在TForm1.FormCreate多建一個TControlForm就好
但是TCar做完某些計算後,需要回頭要求TControlForm內的元件作狀態變化
有什麼方法可以讓TCar要如何知道擁有它的是哪個TControlForm?(cf1 or cf2)
請各位大大不吝指教
感恩~
------
===波士頓夜未眠===
What a wonderful world!!
Jazz up the world with jazz!!
==================

When I am not programming...
you can find me here:
http://www.holy-war.de/EN/World3/bin/?advertiser=63190
lacsar
一般會員


發表:1
回覆:1
積分:0
註冊:2007-10-30

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-12-03 13:45:47 IP:220.130.xxx.xxx 訂閱
依照yubad2000大提供的方法試出來了
感謝萬分 ^^
===================引 用 yubad2000 文 章===================
可能需要改寫TCar的constructor to
TCar.create(sender:TObject)並將sender儲存於物件中, .
So, 在TControlForm使用TCar時, 必須呼叫 CarX.create(self);
當TCar class內的程式需用到TControlForm時,
取出sender並轉換成TControlForm即可.
jow
尊榮會員


發表:66
回覆:751
積分:1253
註冊:2002-03-13

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-12-03 14:08:12 IP:210.66.xxx.xxx 訂閱
嗯, 依程式邏輯來看, 先有一個控制面板, 才來產生相對的 TCar?
如此, 以一個面板應該就可以控制許多輛 TCar了, 不是嗎?!!

個人看法僅供參考...

===================引 用 lacsar 文 章===================
依照yubad2000大提供的方法試出來了
感謝萬分 ^^
===================引 用 yubad2000 文 章===================
可能需要改寫TCar的constructor to
TCar.create(sender:TObject)並將sender儲存於物件中, .
So, 在TControlForm使用TCar時, 必須呼叫 CarX.create(self);
當TCar class內的程式需用到TControlForm時,
取出sender並轉換成TControlForm即可.
系統時間:2017-10-17 15:48:01
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!