請問Listview要如何存檔和載入? |
答題得分者是:ccchen
|
kiss999
一般會員 發表:19 回覆:10 積分:13 註冊:2002-10-12 發送簡訊給我 |
|
ccchen
版主 發表:61 回覆:940 積分:1394 註冊:2002-04-15 發送簡訊給我 |
任何元件都可以用以下方法存取
1. 存檔
procedure TForm1.Button1Click(Sender: TObject); var f:TFileStream; begin f:=TFileStream.Create('c:\test',fmcreate); try f.WriteComponent(Listview1); finally f.free; free; end;2. 讀出 var f:TFileStream; lw:TListView; begin RegisterClass(TListView); //必須先將要讀出之類別register f:=TFileStream.create('c:\test',fmOpenRead); try lw:=TListView.create(self); //先create元件 lw.Parent:=self; //給新的parent f.ReadComponent(lw); //讀出component finally f.free; end;[NOTE] 1. 若在原來之Form上讀出, 須注意須先delete原來之listview1否則會重複 2. 若希望所存之檔為純text, 可用ObjectBinarytoText先轉成text再存檔讀出時先用ObjectTextToBInary轉回 3. 若你的listview是vsReport, 也可以自己寫程式只存字串 以下程式將listView(vsReport)之內容轉成TStrings 你可以直接用TStrings之savetofile存檔 procedure TForm1.ListViewToStringlist(lv: TListView; l: TStrings); var i,j:integer; s:string; begin for i:=0 to ListView1.Items.Count-1 do begin s:=Listview1.Items[i].caption; for j:=0 to listview1.items[i].SubItems.Count-1 do s:=s #9 listview1.items[i].SubItems[j]; l.add(s); end; end; |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |