Hi jungs,
als ich das hier gelesen habe hab ich mich daran erinnert, dass ich ähnliches auch mal am Wickel hatte. das aber unter D5.
Bei mir war es so, dass beim Lesen der Serialisierung die Instanz der Komponente existieren mußte. Also bei nil ging es sowiso in die Hose. es reichte aus einfach erst mal ein Create auszuführen.
Ich geb euch hier mal meinen code für das Schreiben und Lesen der Serialisierung. Ich hoffe es hilft. Bei mir war es dann eigentlich kein Problem mehr.
Schreiben:
Delphi-Quellcode:
procedure TSercheThread.WriteListToFile;
var Stream : TFileStream;
begin
IF not Assigned(FMahnListView) then Exit;
Stream := TFileStream.Create(MahnFileName, fmCreate or fmShareDenyNone);
try
Stream.WriteComponent(FMahnListView);
finally
Stream.Free;
end;
end;
Lesen:
Delphi-Quellcode:
procedure TSercheThread.ReadListFromFile;
var Stream : TFileStream;
begin
IF not Assigned(FMahnListView) then Exit;
IF not FileExists(ExtractFilePath(Application.ExeName) + MahnFileName) then
Stream := TFileStream.Create(MahnFileName, fmCreate or fmShareDenyNone)
else
Stream := TFileStream.Create(MahnFileName, fmOpenReadWrite or fmShareDenyNone);
try
IF Stream.Size = 0 then Exit;
FMahnListView := TListView(Stream.ReadComponent(FMahnListView));
finally
Stream.Free;
end;
end;
Das war dann auch wirklich ein TListView. Ob das alles so mit TControl funzt wage ich zu bezweifeln. Ich hoffe ich konnte euch einen Hinweis geben der hilft (bin grad knapp in der Zeit und habe diesen Thread nur diagonal gelesen).
gruß oki