findcomponent 一問 |
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
請問各位! 我有20個led 的vcl元件置於 form2, 而我在form1欲判斷某一個 led 的 staton 值, 我在 form1 上要如何寫才對? procedure checkstate;
var mled: TLEDButton;
begin
mled:= TLEDButton(FindComponent('LEDButton' InttoStr(j)));
if mled.StateOn=False then begin
.....
end;
end; 上述的寫法,complier沒有問題, 但執行時會出現 Access 錯誤
我曾嘗試過
mled:= TLEDButton(FindComponent('Form2.LEDButton' InttoStr(j)));
但也會出錯, 請問我該如何下? ps:這個判斷必須寫在 form1 , 如果架在 form2 會多寫很多動作
|
andersonhsieh
版主 發表:33 回覆:531 積分:439 註冊:2002-06-10 發送簡訊給我 |
引言: 請問各位! 我有20個led 的vcl元件置於 form2, 而我在form1欲判斷某一個 led 的 staton 值, 我在 form1 上要如何寫才對? procedure checkstate; var mled: TLEDButton; begin mled:= TLEDButton(FindComponent('LEDButton' InttoStr(j))); if mled.StateOn=False then begin ..... end; end; 上述的寫法,complier沒有問題, 但執行時會出現 Access 錯誤 我曾嘗試過 mled:= TLEDButton(FindComponent('Form2.LEDButton' InttoStr(j))); 但也會出錯, 請問我該如何下? ps:這個判斷必須寫在 form1 , 如果架在 form2 會多寫很多動作這一行 mled:= TLEDButton(FindComponent('LEDButton' InttoStr(j)));改成如下 mled:= TLEDButton(form2.FindComponent('LEDButton' InttoStr(j))); @@~~飛翔在天際的精靈~~@@
------
@@~~飛翔在天際的精靈~~@@ |
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
引言: procedure checkstate; var mled: TLEDButton; begin mled:= TLEDButton(FindComponent('LEDButton' InttoStr(j))); if mled.StateOn=False then begin ..... end; end; 上述的寫法,complier沒有問題, 但執行時會出現 Access 錯誤 我曾嘗試過 mled:= TLEDButton(FindComponent('Form2.LEDButton' InttoStr(j))); 但也會出錯, 請問我該如何下? ps:這個判斷必須寫在 form1 , 如果架在 form2 會多寫很多動作Hi,因為FindComponent是用在你要找詢物件的container 上, 而且因為 你要在 form1 上查找 form2 上的元件, 所以你必須用 mled := TLEDButton(form2.FindComponent('LEDButton' IntToStr(j))); 才可以正常的找到你要的 component, 但是你原來用的語法應該沒錯, 只是找不到 component 才對, 奇怪勒?? |
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
引言: Hi,因為FindComponent是用在你要找詢物件的container 上, 而且因為 你要在 form1 上查找 form2 上的元件, 所以你必須用 mled := TLEDButton(form2.FindComponent('LEDButton' IntToStr(j))); 才可以正常的找到你要的 component, 但是你原來用的語法應該沒錯, 只是找不到 component 才對, 奇怪勒??以上感謝樓上兩位指點, 謝謝! 我原先有使用 form2.Findcomponent 也會造成當機, 一度令我以為這樣寫法是錯誤的, 後來再查程式才發現, 原來程式有一個地方有錯, 造成 form2.Find...無法執行, 改過之後就可以了! |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |