請教TListView元件無法取得選取Item的問題 |
尚未結案
|
algo
一般會員 發表:4 回覆:21 積分:10 註冊:2003-04-15 發送簡訊給我 |
在下使用TListView元件的report方式來做一些資料的列表,
然後讓使用者可以選擇想要的資料做處理,但是卻會發生
ListView->SelCount有正確的選擇數量,但是使用如下列
方式取出資料時卻僅剩下一筆資料...不知道各位先進有否
遇到這樣的問題?請不吝指教謝謝!
void __fastcall TMyListView::ToolButton1Click(TObject *Sender) { TItemStates UserSelected = TItemStates() << isSelected; TListItem *Item = ListView1->Selected; if (ListView1->SelCount == 0){ ShowMessage("未選擇處理項目."); return; } else{ ShowMessage(ListView1->SelCount); //此項可正常列出所選資料數量 } //此迴圈跑一次Item就會NULL而停止 while (Item){ ShowMessage(Item->Caption); Item = ListView1->GetNextItem(Item, sdAll, UserSelected); } }PS:程式開始時前在下有先Clean Select ??? 發表人 - algo 於 2004/11/24 10:36:49
------
??? |
algo
一般會員 發表:4 回覆:21 積分:10 註冊:2003-04-15 發送簡訊給我 |
在下做了另外的測試,使用暴力法檢查所有的Item有沒有
被Select結果是正確的...OTZ
雖然有了解決的方法,但是在下還是很想知道之前的方法
有什麼問題會造成只能取讀到一筆選取資料^^;
void __fastcall TForm1::Button1Click(TObject *Sender) { int i; for (i=0;i<=ListView1->Items->Count-1 ;i ) { if(ListView1->Items->Item[i]->Selected){ Memo1->Lines->Add(ListView1->Items->Item[i]->Caption); } } }???
------
??? |
m8815010
版主 發表:99 回覆:372 積分:289 註冊:2003-11-13 發送簡訊給我 |
引言: 在下使用TListView元件的report方式來做一些資料的列表, 然後讓使用者可以選擇想要的資料做處理,但是卻會發生 ListView->SelCount有正確的選擇數量,但是使用如下列 方式取出資料時卻僅剩下一筆資料...不知道各位先進有否 遇到這樣的問題?請不吝指教謝謝!algo你好: 取自 class="code"> void __fastcall TForm1::Button1Click(TObject *Sender) { TItemStates selected = TItemStates() << isSelected; TListItem *Item = ListView1->Selected; while (Item){ ListBox1->Items->Add(Item->Caption); Item = ListView1->GetNextItem(Item, sdAll, selected); } } 試了一下,是可以正常work的,不過GetNextItem的第3個參數下的跟你的不一樣,不曉得你的那個參數是看那的,因為那個好像不是一定合法的參數< >! 嗯,結論是沒問題的,如果還有的話,也看看你的元件有沒有問題(因為你好像是自已新寫的)< >!void __fastcall TMyListView::ToolButton1Click(TObject *Sender) { TItemStates UserSelected = TItemStates() << isSelected; TListItem *Item = ListView1->Selected; if (ListView1->SelCount == 0){ ShowMessage("未選擇處理項目."); return; } else{ ShowMessage(ListView1->SelCount); //此項可正常列出所選資料數量 } //此迴圈跑一次Item就會NULL而停止 while (Item){ ShowMessage(Item->Caption); Item = lstvwVirtualList->GetNextItem(Item, sdAll, UserSelected); } }PS:程式開始時前在下有先Clean Select ??? |
algo
一般會員 發表:4 回覆:21 積分:10 註冊:2003-04-15 發送簡訊給我 |
|
m8815010
版主 發表:99 回覆:372 積分:289 註冊:2003-11-13 發送簡訊給我 |
引言:algo你好: 歹勢,眼睛脫窗了,沒看到! 嗯,幫你 >!引言: 試了一下,是可以正常work的,不過GetNextItem的第3個參數下的跟你的不一樣,不曉得你的那個參數是看那的,因為那個好像不是一定合法的參數m8815010您好: 關於您提到的GetNextItem的第3個參數來源就是程式一開始的 TItemStates UserSelected = TItemStates() << isSelected; 所以應該沒有什麼問題,目前在下還在找造成此方式無法使用的 原因^^; ??? |
ENIX007
高階會員 發表:28 回覆:274 積分:185 註冊:2003-11-27 發送簡訊給我 |
algo您好
挿個花,您該不會是MultiSelect沒有設成true吧(也就是沒多選)
因為我把您的code完整貼上測試結果是沒問題的
void __fastcall TForm1::Button1Click(TObject *Sender) { TListItem *item; static int index = 0; item = ListView1->Items->Add(); item->Caption = index ; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { TItemStates UserSelected = TItemStates() << isSelected; TListItem *Item = ListView1->Selected; if (ListView1->SelCount == 0){ ShowMessage("未選擇處理項目."); return; } else{ ShowMessage(ListView1->SelCount); //此項可正常列出所選資料數量 } //此迴圈跑一次Item就會NULL而停止 while (Item){ ShowMessage(Item->Caption); Item = ListView1->GetNextItem(Item, sdAll, UserSelected); } }執行是正常的喔... 程式迷人之處,在於邏輯思考,然而卻也是惱人之處~~
------
程式迷人之處,在於邏輯思考,然而卻也是惱人之處~~ |
algo
一般會員 發表:4 回覆:21 積分:10 註冊:2003-04-15 發送簡訊給我 |
|
Reignson
一般會員 發表:3 回覆:11 積分:12 註冊:2005-01-31 發送簡訊給我 |
在下使用Delphi作處理用此法方法是正常的。
貼上其中片斷如下: oItem:=oFileList.GetNextItem(oItem,sdAll,oSelect);
repeat
sTemp:=sPath oItem.Caption;
oItem:=oFileList.GetNextItem(oItem,sdAll,oSelect);
until oItem=nil;
所以覺得可以試一下改成:
void __fastcall TMyListView::ToolButton1Click(TObject *Sender)
{
TItemStates UserSelected = TItemStates() << isSelected;
// TListItem *Item = ListView1->Selected;
TListItem *Item;
Item = ListView1->GetNextItem(Item, sdAll, UserSelected); if (ListView1->SelCount == 0){
ShowMessage("未選擇處理項目.");
return;
}
else{
ShowMessage(ListView1->SelCount); //此項可正常列出所選資料數量
} //此迴圈跑一次Item就會NULL而停止
while (Item){
ShowMessage(Item->Caption);
Item = ListView1->GetNextItem(Item, sdAll, UserSelected);
}
}
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |