如何讓自訂class得知擁有它的是哪個Form |
答題得分者是:yubad2000
|
lacsar
一般會員 發表:1 回覆:1 積分:0 註冊:2007-10-30 發送簡訊給我 |
最近在練習用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 發送簡訊給我 |
可能需要改寫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 發送簡訊給我 |
依照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 發送簡訊給我 |
嗯, 依程式邏輯來看, 先有一個控制面板, 才來產生相對的 TCar?
如此, 以一個面板應該就可以控制許多輛 TCar了, 不是嗎?!! 個人看法僅供參考... ===================引 用 lacsar 文 章=================== 依照yubad2000大提供的方法試出來了 感謝萬分 ^^ ===================引 用 yubad2000 文 章=================== 可能需要改寫TCar的constructor to TCar.create(sender:TObject)並將sender儲存於物件中, . So, 在TControlForm使用TCar時, 必須呼叫 CarX.create(self); 當TCar class內的程式需用到TControlForm時, 取出sender並轉換成TControlForm即可. |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |