Die Idee mit EINEM Ini-File finde ich sehr schön. Ich würde allerdings nicht ein Edit4-Feld nehmen, sondern beim Klicken auf den Speichern- bzw. Laden button einen InputDialog bzw. eine Combobox anzeigen. So ist der Ablauf für den User besser nachvollziehbar. Ausserdem wäre es zu überlegen, die Ini nicht ins Programmverzeichns zu legen.
Ungeachtet dessen, dass ich (soweit ich das Projekt überblicke) wahrscheinlich auch die Ini-Lösung vorziehen würde, möchte ich noch kurz die programmtechnische Umsetzung von Andis eigener Idee zeigen Ich nehme für die Dateiarbeit ein TFilestream. Wenn man die Datei auch händig bearbeiten soll, wäre ein Textfile besser. Aber in dem Fall ist die Ini-Lösung gleich noch 10mal besser.
Delphi-Quellcode:
uses Dialogs;
procedure TForm1.SpeichernButtonClick(Sender: TObject);
var SaveDialog:TSaveDialog;
Datei:TFileStream;
i:integer;
stext:string;
textlength:integer;
begin
SaveDialog:=TSavedialog.Create(nil);
try
SaveDialog.Filter:='Motoren (*.mot)|*.mot';
savedialog.DefaultExt:='mot';
if SaveDialog.Execute then
begin
Datei:=TfileStream.Create(SaveDialog.FileName,fmCreate);
try
for i:=1 to 3 do
begin
stext:=TEdit(findcomponent('Edit'+inttostr(i))).Text;
textlength:=length(stext);
Datei.Write(textlength,sizeof(textlength));
Datei.Write(stext[1],textlength);
end;
finally
Datei.free;
end;
end;
finally
SaveDialog.Free;
end;
end;
procedure TForm1.LadenButtonClick(Sender: TObject);
var OpenDialog:TOpenDialog;
Datei:TFileStream;
i:integer;
stext:string;
textlength:integer;
begin
OpenDialog:=TOpendialog.Create(nil);
try
OpenDialog.Filter:='Motoren (*.mot)|*.mot|Alle Dateien|*.*';
if OpenDialog.Execute then
begin
Datei:=TfileStream.Create(OpenDialog.FileName,fmOpenRead);
try
for i:=1 to 3 do
begin
Datei.Read(textlength,sizeof(textlength));
setlength(stext,textlength);
Datei.Read(stext[1],textlength);
TEdit(findcomponent('Edit'+inttostr(i))).Text:=stext;
end;
finally
Datei.free;
end;
end;
finally
OpenDialog.Free;
end;
end;
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.