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

ListView 如何select all & copy & save as

缺席
TIY~2
一般會員


發表:26
回覆:37
積分:22
註冊:2003-08-07

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-08-30 00:28:36 IP:218.162.xxx.xxx 未訂閱
在本站一直都找佈道 不知道是不是自己不太會找~~ 如果之前有人發表請告知我一下網址 如果沒有請各為大大指教一番 想要用一個popupmenu做ListView的右鍵選單 選單裡面有常見的三個選項,但我不知道該如何下手 一個是 select all & copy & save as 請指點...
TIY~2
一般會員


發表:26
回覆:37
積分:22
註冊:2003-08-07

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-09-08 09:10:53 IP:218.162.xxx.xxx 未訂閱
自己已經研究出來了 我覺得應該不會出錯,發表出來給大家參考。 程式碼 Copy部分: 事前準備元件:MEMO,ListView,PopupMenu(可用Button取代)。 TListItems* xxx; //宣告一個ListItems的指標 AnsiString text; //用來暫存ListView1上面列的字串 xxx=ListView1->Items; M_Copy->Clear(); //M_Copy是一個MEMO元件 動作清除 for(int count=0;countCount;count ) //回圈搜尋整個ListView1 { if(xxx->Item[count]->Selected==true) //有被選取的部分,ListView1反藍的部分!! { text=xxx->Item[count]->Caption " " xxx->Item[count]->SubItems->Strings[0] " " xxx->Item[count]->SubItems->Strings[1] " " xxx->Item[count]->SubItems->Strings[2] " " xxx->Item[count]->SubItems->Strings[3] " "; //因為我有5個欄位,若有第六個,則在最後面在加xxx->Item[count]->SubItems->Strings[5] " "以此類推。 M_Copy->Lines->Insert(0,text); //把被選取的列加入MEMO內 } } M_Copy->SelectAll(); //全選MEMO M_Copy->CopyToClipboard(); //Copy至windows記憶體內,好啦!!大功告成了。 //-------------------------------- Select All部分: 事前準備元件:MEMO,ListView,PopupMenu(可用Button取代)。 TListItems* xxx; xxx=ListView1->Items; if(xxx->Count==0) //假如ListView1內無資料存在則跳出此程式 return; for(int count=0;countCount;count ) //把所有ListView1上的資料都反藍。 xxx->Item[count]->Selected=true; //好啦大功告成 //-------------------------------- Save As..部分: 事前準備元件:ListView,PopupMenu(可用Button取代),SaveDialog。 動作原理先告數大家,先把ListView1上所有資訊都COPY到StringList上,在把StringList上所有資訊儲存到自己想要放置的位址上。 AnsiString path,s; //path為路徑存放字串,s為暫存ListView上每列的字串 TStringList *l=new TStringList(); //宣告一個StringList的指標 TListItems* xxx; //宣告ListItems的指標 xxx=ListView1->Items; if(SaveDialog1->Execute()) //啟動SaveDialog path=SaveDialog1->FileName; //存放路徑 if(path=="") //若路徑為空則跳出此程式 return; for(int i=xxx->Count-1;i>=0;i--) //迴圈搜尋ListView { s=xxx->Item[i]->Caption; for(int j=0;jItem[i]->SubItems->Count;j ) s=s " " xxx->Item[i]->SubItems->Strings[j]; //收集每一列所有資訊 l->Add(s); //把s加入到StringList L 裡 } try{ try{ l->SaveToFile(path); //儲存 MessageBox(NULL,"Save Ok.","Save Success",MB_OK|MB_ICONWARNING); //顯示儲存完成 } catch(...){ MessageBox(NULL,"Save Error.","Save Warning",MB_OK|MB_ICONWARNING); //顯示儲存失敗 } } __finally{ delete(l); //釋放L的空間,好啦!大功告成 } 若覺得有可以改進的地方請多指教
系統時間:2024-05-16 5:52:35
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!