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

請問Listview要如何存檔和載入?

答題得分者是:ccchen
kiss999
一般會員


發表:19
回覆:10
積分:13
註冊:2002-10-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-01-18 19:12:47 IP:218.187.xxx.xxx 未訂閱
我試了很多方法都沒有辦法作到, 請問Listview要如何存檔和載入? 謝謝~~~~
ccchen
版主


發表:61
回覆:940
積分:1394
註冊:2002-04-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-01-19 08:52:28 IP:203.217.xxx.xxx 未訂閱
任何元件都可以用以下方法存取 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;
系統時間:2024-05-03 18:42:23
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!