Meinste das geht?
Ich will ja nicht ständig nur von Datei ne Instanz erzeugen und somit würde er doch bestimmt meckern über das LoadFromFile im Constructor wenn gar keine File da is.
Mich wundert es halt blos das es in dem Beispielprogramm auch funzt:
Delphi-Quellcode:
procedure TformMain.btLadenClick(Sender: TObject);
var rdFahrzeuge : TReader;
iAnzahl ,i : Integer;
FahrzeugClass : TFahrzeugRef;
lFahrzeug : TFahrzeug;
begin
lbFahrzeuge.clear; // aktuelle Fahrzeuge löschen
OpenDialog.Filter:='Alle Dateien |*.*|Sav-Files (*.sav)|*.SAV';
OpenDialog.FilterIndex:= 2;
if OpenDialog.Execute then
begin
for i:= 0 to 19 do
begin
aFahrzeuge[i].free;
end;
strFile := TFileStream.Create(Opendialog.filename,fmOpenRead);
rdFahrzeuge := TReader.Create(strFile,2000);
iAnzahl := rdFahrzeuge.ReadInteger;
for i:= 0 to iAnzahl-1 do
begin
FahrzeugClass := TFahrzeugRef(findclass(rdFahrzeuge.readString));
lFahrzeug := FahrzeugClass.Create;
lFahrzeug.LoadFromFile(rdFahrzeuge);
aFahrzeuge[i] := lFahrzeug ;
lbFahrzeuge.items.Add(aFahrzeuge[i].Kennzeichen);
end;
rdFahrzeuge.destroy;
strFile.destroy;
end; // If Laden
end;
und da ist eigentlich nix anders... halt nur die Bezeichnungen!
Hab es ja mehr oder weniger 1:1 übernommen