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

請問如何動態加入item到TCheckListBox之中!!

答題得分者是:RaynorPao
aredfish
一般會員


發表:47
回覆:41
積分:17
註冊:2002-12-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-12-17 09:37:58 IP:210.241.xxx.xxx 未訂閱
各位大大您好, 請問一下我需要在程式中視情況將所要被選到的項目出現 在選單之中(有一個類似RadioButton的東西, 後面接敘述), 也就是說這一個選單中要被選的東西不是永遠固定的, 會視情況增減或改變項目敘述, 而且可以被複選, 所以想請問一下這樣的一個功能該從何處下手, 謝謝各位大大!!
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-12-17 10:21:55 IP:203.73.xxx.xxx 未訂閱
引言: 各位大大您好, 請問一下我需要在程式中視情況將所要被選到的項目出現 在選單之中(有一個類似RadioButton的東西, 後面接敘述), 也就是說這一個選單中要被選的東西不是永遠固定的, 會視情況增減或改變項目敘述, 而且可以被複選, 所以想請問一下這樣的一個功能該從何處下手, 謝謝各位大大!!
aredfish 你好: 因為你的問題的標題和問題的內文~~好像不太一樣 所以~~我只能用猜的~~希望以下的 > < class="code"> TStringList *stBuf=NULL; void __fastcall TForm1::Button1Click(TObject *Sender) { int i=0; stBuf->Add("Check0"); stBuf->Add("Check1"); stBuf->Add("Check2"); stBuf->Add("Check3"); stBuf->Add("Check4"); CheckListBox1->Clear(); for(i=0; iCount; i ) { CheckListBox1->AddItem(stBuf->Strings[i], NULL); } } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { int i=0; Memo1->Clear(); for(i=0; iCount; i ) { if(CheckListBox1->Checked[i]) { Memo1->Lines->Add(stBuf->Strings[i] " is checked"); } else { Memo1->Lines->Add(stBuf->Strings[i] " is not checked"); } } } //--------------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender) { stBuf=new TStringList; } //--------------------------------------------------------------------------- void __fastcall TForm1::FormDestroy(TObject *Sender) { delete stBuf; } -- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
aredfish
一般會員


發表:47
回覆:41
積分:17
註冊:2002-12-04

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-12-17 11:41:42 IP:210.241.xxx.xxx 未訂閱
謝謝您的回答, 真的解決了我很多問題, 您上面的程式中有一行應該要改成 CheckListBox1->Items->Add(stBuf->Strings[i]); 再請問一下, 我應該要如何得到這個CheckListBox中有多少個項目 因為我想要刪除掉Box裡所有的項目, 我初步的想法是利用 CheckListBox1->Items->Delete(i) 來一個一個刪除掉項目, 但這樣一來我就必須先得到Item數目再指定給i來一個一個刪除, 而且....我剛try用Delete去跑 結果在執行時都會發生錯誤, 發生錯誤的方式就像是給了一個超出邊界的矩陣一樣。 還有一個問題, 我應該要怎麼寫才能得到: stBuf->Add("Check %d",i); "這一行是錯的"... 我的目的是前面的Check是固定的, 但後面的項目號碼可以變, 因為這樣一來 我就可以控制產生的Item數目, 而且每個Item的內容以可以不同。 最後一個問題, 當我查Help中的TCheckListBox項目時, 我可以看到他有Item這個函數, 但是他所接下來的Add功能是從哪來的呢?? 我應該要如何思考"繼承的路徑" 才能達到善用Help的目的呢?? 問了一大堆的問題, 非常謝謝各位大大不賃指教。
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-12-17 12:10:35 IP:203.73.xxx.xxx 未訂閱
引言: 謝謝您的回答, 真的解決了我很多問題, 您上面的程式中有一行應該要改成 CheckListBox1->Items->Add(stBuf->Strings[i]); 再請問一下, 我應該要如何得到這個CheckListBox中有多少個項目 還有一個問題, 我應該要怎麼寫才能得到: stBuf->Add("Check %d",i); "這一行是錯的"... 最後一個問題, 當我查Help中的TCheckListBox項目時, 我可以看到他有Item這個函數, 但是他所接下來的Add功能是從哪來的呢?? 我應該要如何思考"繼承的路徑" 才能達到善用Help的目的呢?? 問了一大堆的問題, 非常謝謝各位大大不賃指教。
aredfish 你好: 請參考以下的做法: (1)CheckListBox1->Count (2)stBuf->Add("Check" IntToStr(i)); (3)Items不是函數(是property)他的型態是TStrings(所以你應該查詢TStrings) -- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
bigdogchina
版主


發表:238
回覆:523
積分:312
註冊:2003-04-28

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-06-29 20:03:00 IP:211.162.xxx.xxx 未訂閱
RaynorPao大大,我实验了一下您的代码,好象有点问题哦,
void __fastcall TForm1::Button2Click(TObject* Sender)
{
        int i = 0;
        Memo1->Clear();            for( i = 0; i < CheckListBox1->Items->Count; i  ) 
        {
            if(CheckListBox1->Checked[i])
            {
                Memo1->Lines->Add(strBuf->Strings[i]   " is Checked");
            }
            else
            {
                Memo1->Lines->Add(strBuf->Strings[i]   " is No Checked");
            }
        }
}
应该是CheckListBox的Items下才有count,不要生气哈,我又钻牛角尖了 人生在勤,不索何获?
------
人生在勤,不索何获?
系統時間:2024-05-03 22:13:09
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!