全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2005
推到 Plurk!
推到 Facebook!

check box控制項問題一問

答題得分者是:taishyang
frederick
中階會員


發表:101
回覆:108
積分:66
註冊:2002-08-01

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-10-13 15:53:43 IP:211.74.xxx.xxx 未訂閱
大家好: 想請教一個問題。    視窗上的控制項: 如果要第一組「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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-10-13 16:07:59 IP:140.135.xxx.xxx 未訂閱
獻醜了 下面的 class="code"> for(int i=0; i <Form1->ComponentCount; i ) if(Components[i]->ClassNameIs("TCheckBox")) { TCheckBox *MyCheckBox = (TCheckBox *)Components[i]; MyCheckBox->Checked = true; } 之前我PO的方式比較遜色,上面這個才是正解 謝謝 > 發表人 -
Robinon
一般會員


發表:1
回覆:10
積分:2
註冊:2003-07-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-10-13 16:10:10 IP:61.66.xxx.xxx 未訂閱
frederick 您好: 參考一下 http://delphi.ktop.com.tw/topic.php?topic_id=37352 剩下的就難不倒您囉 順心
frederick
中階會員


發表:101
回覆:108
積分:66
註冊:2002-08-01

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-10-13 16:56:14 IP:210.244.xxx.xxx 未訂閱
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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-10-13 17:05:51 IP:140.135.xxx.xxx 未訂閱
frederick您好:
引言:是不是有些什麼指令、屬性可以把CheckBox歸類在各GroupBox?
那試試Tag屬性< > 順心< > ~我也是在學習的階段,回答的不好請您多多見諒與指教~
frederick
中階會員


發表:101
回覆:108
積分:66
註冊:2002-08-01

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-10-13 20:23:29 IP:203.70.xxx.xxx 未訂閱
如圖所示(最上層) 最佳解決方法我想是taishyang第一次所提供的方法。用FindComponent的方式; 不過我說taishyang阿~您也不必急著把程式碼刪掉嘛 還好在第一時間就得獲您的解答。(因有看到您第一次的程式碼) 另外也感謝 >
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-10-13 23:32:33 IP:140.135.xxx.xxx 未訂閱
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

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-10-14 10:38:09 IP:210.244.xxx.xxx 未訂閱
sorry...因我的ADSL又斷線了,故重複post >_< 發表人 - frederick 於 2003/10/14 10:44:23
frederick
中階會員


發表:101
回覆:108
積分:66
註冊:2002-08-01

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-10-14 10:38:28 IP:210.244.xxx.xxx 未訂閱
引言: frederick您好:
引言:不過我說taishyang阿~您也不必急著把程式碼刪掉嘛
因為您最先的需求,Robinon大哥的方式最適合 <>< face="Verdana, Arial, Helvetica">引言:另taishyang您說的tag方式或許改天在另文請教,因還不是很懂
不用改天囉,現在就有範例說明 如下圖示,將所要分成一 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
系統時間:2024-05-08 1:16:03
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!