![]() |
Speichern der gesamten TLISTVIEW-Einträge...
HI,
kennt irgendjemand eine Routine zum speichern des Inhalts eines gesamten TLISTVIEW? MFG Thomas |
Zwei Routines zum Laden und Speichern. Ungetestet, sollte aber funktionieren.
Delphi-Quellcode:
procedure LoadListView(LV: TListView; aFile: string);
var I: Integer; Item: TListItem; begin with TStringList.Create do try LoadFromFile(aFile); I := 0; while I < Count do begin Item := LV.Items.Add: Item.Caption := Strings[I]; Inc(I); if I = Count then Break; Item.SubItems.CommaText := Strings[I]; Inc(I); end; finally Free; end; end; procedure SaveListView(LV: TListView; aFile: string); var I: Integer; begin with TStringList.Create do try for I := 0 to Pred(LV.Items.Count) do begin Add(LV.Items[I].Caption); Add(LV.Items[I].SubItems.CommaText); end; SaveToFile(aFile); finally Free; end; end; |
Oder so:
Delphi-Quellcode:
function ListViewSaveToFile(ListView: TListView; AFileName: string): Boolean;
var fs: TFileStream; begin fs := TFileStream.Create(AFileName, FmCreate or fmShareDenyWrite); try fs.WriteComponentRes(ListView.Name, ListView); finally fs.Free; end end; function ListViewLoadFromFile(ListView: TListView; AFileName: string): Boolean; var fs: TFileStream; begin fs := TFileStream.Create(AFileName, FMOpenRead or fmShareDenyNone); try fs.ReadComponentRes(ListView); finally fs.Free; end end; |
Hi,
danke erstmal für die Lösung. Ich hab sie gerade getestet. Da kommt ein Fehler: "Kann die Datei nicht öffnen"...bla,bla ect. Der Fehler wird bei der TFileStrem.Create(...); procedure ausgelöst. MFG Thomas |
Stimmt der Dateipfad? Bei mir hat es bis jetzt immer gut geklappt.
|
Ich hab beim oncreate ereignis einfach
Code:
geschrieben.
ListviewSaveTofile('C:\test.dat');
|
Ich habe mein Problem gerade gelöst, bzw. ich bin auf dem besten Weg.
Ich denke zu dem Zeitpunkt wenn das OnCreate Ereignis aufgerufen wird wurde der Listview noch garnicht erstellt. Ich habs mit Buttons gelöst. MFG Thomas |
Machs doch im OnSohw, da ist die LV schon Created.
Grüsse, Daniel :xmas: |
Ich habs mir gerade überlegt.
Ich könnte auch nen Timer nehmen... |
Moin Thomas,
Zitat:
Wenn der ListView dem Formular untergeordnet ist, dann existiert er schon. Es ist, im Prinzip, nichts weiter als ein Feld in der Klasse des Formulares. Das OnCreate wird aufgerufen, nachdem der Konstruktor der Klasse (z.B. TForm1) abgearbeitet wurde. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz