Hallo!
Hier der Code den ich zur Zeit benutze:
Delphi-Quellcode:
function TForm1.RenameFileEx(const AOldName, ANewName: string;
ARenameCheck: boolean = false): boolean;
var
sh: TSHFileOpStruct;
begin
sh.Wnd := Application.Handle;
sh.wFunc := fo_Move;
// String muss mit #0#0 Terminiert werden, um das Listenende zu setzen
sh.pFrom := PChar(AOldName + #0);
sh.pTo := PChar(ANewName + #0);
sh.fFlags := fof_Silent or fof_MultiDestFiles;
if ARenameCheck then
sh.fFlags := sh.fFlags or fof_RenameOnCollision;
Result:=ShFileOperation(sh)=0;
end;
procedure TForm1.ButtonClick(Sender: TObject);
begin
if not fileexists('C:/OrdnerA/Beispieldatei.bmp') then
begin
ReNameFileEx('C:/OrdnerA/Beispieldatei.bmp','C:/OrdnerB/Beispieldatei.bmp');
end else
showmessage('Datei existiert schon!');
end;
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key = 'a' then Button.Click;
end;
Es soll also nur eine Datei von Ornder A nach OrdnerB kopiert werden.
Wenn ich nun die Taste a mehrmals hintereinander drücke(natürlich ändert sich die zu kopierende Datei, habe das jetzt nur der Übersicht halber mit festen strings geschrieben), dann stürzt das Programm ohne Fehlermeldung ab.
Weiß jemand weiter denn wenn ich den Button mehrmals drücke funktioniert alles!
Gruß
MasterDG