Hallo Störtebeker,
warum öffnest Du die Ini-Datei ohne etwas damit zu machen, und führst dann die Delete/Rename Aktionen auf dieser geöffneten Ini-Datei durch ?
Außerdem fehlt bei Dir irgendwie in beiden Codeschnipseln ein "end"......?!
Kein Fehler, aber warum verwendest Du mal Application.ExeName und dann wieder ParamStr(0) ?
Noch ein Tip zur Lesbarkeit: wenn Du z.B. "ExtractFilePath(Application.ExeName)+'vers_patch. ini'" mehrfach brauchst, dann belege 1 mal ein stringvariable damit.
Last but not least würde ich eine Extra-Methode zum umbenennen der Datei machen, und diese Methode im FormShow aufrufen (also nicht Code direkt im FormShow).
Versuche mal statt
Delphi-Quellcode:
procedure TForm7.FormShow(Sender: TObject);
var Ini : TIniFile;
begin
if FileExists(ExtractFilePath(Application.ExeName)+'vers_patch.ini') then begin
Ini:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'vers__patch.ini');
try
deletefile(ExtractFilePath(Application.ExeName)+'vers_aktuell.ini');
renamefile(ExtractFilePath(Application.ExeName)+'vers_patch.ini',(ExtractFilePath(Application.ExeName)+'vers_aktuell.ini'));
finally
FreeAndNil(Ini);
end;
end;
einfach nur dieses:
Delphi-Quellcode:
procedure TForm7.CheckForPatchFile;
var
patchfilename,
currentfilename: string;
begin
patchfilename := ExtractFilePath(Application.ExeName)+'vers_patch.ini';
if not FileExists(patchfilename) then
exit;
currentfilename := ExtractFilePath(Application.ExeName)+'vers_aktuell.ini';
deletefile(currentfilename);
renamefile(patchfilename, currentfilename);
end;
procedure TForm7.FormShow(Sender: TObject);
begin
CheckForPatchFile;
end;
Grüsse,
blauweiss