Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi ListViewSaveToFile und ListViewLoadFromFile (https://www.delphipraxis.net/39939-listviewsavetofile-und-listviewloadfromfile.html)

Darty 9. Feb 2005 11:50


ListViewSaveToFile und ListViewLoadFromFile
 
Hallo Leutz,

ich verwende um die Listviews zu speichern bzw zu laden folgende Codes.
Delphi-Quellcode:
{---------------------------------------------------------------------
   Prozedur    : ListViewSaveToFile
   Beschreibung : Speichert ListView in einer Datei
   Argumente   : ListView, AFileName
   Ergebnis    : -
---------------------------------------------------------------------}
Procedure THaupt_Form.ListViewSaveToFile (ListView: TListView; AFileName: string);
var
  LViewFileStream: TFileStream;
begin
  LViewFileStream := TFileStream.Create(AFileName, FMCreate or fmShareDenyNone);
  Try
    LViewFileStream.WriteComponentRes(Listview.Name, ListView);
  Finally
    LViewFileStream.Free;
  End
end;
{---------------------------------------------------------------------
   Prozedur    : ListViewLoadFromFile
   Beschreibung : Ladet ListView von einer Datei
   Argumente   : ListView, AFileName
   Ergebnis    : -
---------------------------------------------------------------------}
Procedure THaupt_Form.ListViewLoadFromFile (ListView: TListView; AFileName: string);
var
  LViewFileStream: TFileStream;
begin
  LViewFileStream := TFileStream.Create(AFileName, FMOpenRead or fmShareDenyNone);
  Try
    LViewFileStream.ReadComponentRes(ListView);
  Finally
    LViewFileStream.Free;
  End
end;
Das hatte ich mal wenn ich mich richtig erinnere von Luckie bekommen. Ist schon eine Weile her. Es funktioniert auch alles wie gewünscht.

Nun meine Frage ist. Ich hatte in einen Programm die Kombo ListView1 verwendet und mit diesem auch gespeichert. Nun habe ich sozusagen ein Nachfolger Programm geschrieben in der es aber nicht mehr ListView1 sondern Daten_ListView genannt wird. Da erhalte ich dann Fehlermeldung "Schutzverletzung". Es hatte zwar geladen aber ich kann nicht zugreifen.
Nun ist das richtig das wenn ich die ListView speichere das den Namen "ListView1" mitgespeichert wurde ? So das ich dann mit den Daten_ListView Probleme habe da 2 verschiedenen Namen sind ?
Als Notlösung hatte ich einfach einen Konverter geschrieben der die Daten in einer ListView1 ladet, die Daten dann in Daten_ListView kopiert und danach dann mit Daten_ListView speichert. Ich habe wohl in Moment nicht die Idealste Speicher Lade Routine.

Puuh lange Rede kurzer Sinn. Also lag es daran wegen den unterschiedlichen ListView.Name ??

Thx schon mal für die Antworten

Stevie 9. Feb 2005 13:53

Re: ListViewSaveToFile und ListViewLoadFromFile
 
Hi,

es liegt tatsächlich an den unterschiedlichen Namen,
denn nach dem Laden ist Daten_ListView = nil, was den
Fehler verursacht, wenn dann darauf zugegriffen wird.

MfG
Stevie

Darty 9. Feb 2005 15:58

Re: ListViewSaveToFile und ListViewLoadFromFile
 
:thumb: Super. ich Danke Dir für den Antwort. Dann habe ich es mir doch richtig "gedacht"

Könnte man sowas eigentlich abfangen, also das trotzdem geladen und bearbeitet wird ? Oder müsste man die Routinen besser darauf anpassen ? Ist zwar jetzt nicht notwendig da ich bereits kovertiert habe. Aber bei zukünftigen Sachen damit man etwas flexibel sein kann ...


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:40 Uhr.

Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf