check box控制項問題一問 |
答題得分者是:taishyang
|
frederick
中階會員 發表:101 回覆:108 積分:66 註冊:2002-08-01 發送簡訊給我 |
大家好:
想請教一個問題。 視窗上的控制項:
如果要第一組「CP」全部check box打勾或取消,我的程式碼如下:
此例是「全部取消」:
void __fastcall TfrmICSetting::btnPICpAllOffClick(TObject *Sender) { if (cbPICp0->Visible == true) { cbPICp0->State = cbUnchecked; } if (cbPICp1->Visible == true) { cbPICp1->State = cbUnchecked; } if (cbPICp2->Visible == true) { cbPICp2->State = cbUnchecked; } if (cbPICp3->Visible == true) { cbPICp3->State = cbUnchecked; } if (cbPICp4->Visible == true) { cbPICp4->State = cbUnchecked; } if (cbPICp5->Visible == true) { cbPICp5->State = cbUnchecked; } if (cbPICp6->Visible == true) { cbPICp6->State = cbUnchecked; } if (cbPICp7->Visible == true) { cbPICp7->State = cbUnchecked; } if (cbPICpB->Visible == true) { cbPICpB->State = cbUnchecked; } if (cbPICpD->Visible == true) { cbPICpD->State = cbUnchecked; } }問題: 1. 有沒有更簡單的方法阿? 記得以前用VB時,如果重複貼上控制項, 它就會問你要不要做成陣列方式,但BCB沒有此功能。 >_< BTW: BCB有內建Radio Box Group的控制項,但就是沒有Check Box的。 我也知道有些套件有提供 Check Box Group的控制項, 但還是想一切以簡單為原則。 謝謝~ 發表人 - frederick 於 2003/10/13 17:03:02 |
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
Robinon
一般會員 發表:1 回覆:10 積分:2 註冊:2003-07-14 發送簡訊給我 |
|
frederick
中階會員 發表:101 回覆:108 積分:66 註冊:2002-08-01 發送簡訊給我 |
Hi:
因我一個頁籤中共有三組相同控制項,
但名稱各不同,如第一個CP0~7、第二個EBTR0~8.......
所以好像用FindComponent比較合適些。
如果搜尋TCheckBox,會造成全部打勾 / 清除。
因我三組是用GroupBox框起來的,
是不是有些什麼指令、屬性可以把CheckBox歸類在各GroupBox?
這樣一來我只要針對特定GroupBox內控制項做搜尋就好。
有沒有這種功能阿? 發表人 - frederick 於 2003/10/13 17:08:48
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
frederick
中階會員 發表:101 回覆:108 積分:66 註冊:2002-08-01 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
frederick您好:
引言:不過我說taishyang阿~您也不必急著把程式碼刪掉嘛因為您最先的需求,Robinon大哥的方式最適合 <>< face="Verdana, Arial, Helvetica">引言:另taishyang您說的tag方式或許改天在另文請教,因還不是很懂 不用改天囉,現在就有範例說明 如下圖示,將所要分成一 src="http://delphi.ktop.com.tw/loadfile.php?TOPICID=12175713&CC=272307"> 然後再試試下面的code void __fastcall TForm1::Button1Click(TObject *Sender) { for(int i=0; i <Form1->ComponentCount; i++) if(Components[i]->ClassNameIs("TCheckBox")&&Components[i]->Tag==1) { TCheckBox *MyCheckBox = (TCheckBox *)Components[i]; MyCheckBox->Checked = true; } }這樣一來就只有那一群會被全選 順心 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~> |
frederick
中階會員 發表:101 回覆:108 積分:66 註冊:2002-08-01 發送簡訊給我 |
|
frederick
中階會員 發表:101 回覆:108 積分:66 註冊:2002-08-01 發送簡訊給我 |
引言: frederick您好:不用改天囉,現在就有範例說明 如下圖示,將所要分成一 class="code"> void __fastcall TForm1::Button1Click(TObject *Sender) { for(int i=0; i <Form1->ComponentCount; i ) if(Components[i]->ClassNameIs("TCheckBox")&&Components[i]->Tag==1) { TCheckBox *MyCheckBox = (TCheckBox *)Components[i]; MyCheckBox->Checked = true; } } 這樣一來就只有那一群會被全選 順心 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~> >>< face="Verdana, Arial, Helvetica"> 哇~那我版面上共有100多個check box,那不就要一一指定< > 不過還是謝謝您喔~< > 發表人 - frederick 於 2003/10/14 10:41:27引言:不過我說taishyang阿~您也不必急著把程式碼刪掉嘛因為您最先的需求,Robinon大哥的方式最適合 <>< face="Verdana, Arial, Helvetica">引言:另taishyang您說的tag方式或許改天在另文請教,因還不是很懂 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |