Autor Beitrag
sintec
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 133



BeitragVerfasst: Mi 15.08.07 10:49 
Hallo alle zusammen,

in meinem Programm habe ich folgende Funktion zum umbenennen von Dateien:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
function TMainWindow.RenameFileEx(const AOldName, ANewName: string;
   ARenameCheck: boolean = false): boolean;
var
  sh: TSHFileOpStruct;
begin
  sh.Wnd := Application.Handle;
  sh.wFunc := fo_Copy;

  // 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;


da ich viele Dateien umbenennen lasse, kommt manchmal eine Meldung, wenn eine Datei mit dem gleichen Namen schon existiert.
bei der Meldung mit der Frage, ob man die Datei ersetzen will, gibts nur Buttons 'Ja' und 'Nein'.

Kann man die Meldung ändern bzw andere Buttons auswählen oder weitere hinzufügen?
Möchte noch den Button 'Abbrechen' haben.

Und kann man die Buttonklicks abfangen?
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 15.08.07 11:12 
Da der Dialog von der API-Funktion erzeugt wird, gibt es da keine weitere Möglichkeit, es sei denn du kannst ihn noch irgendwie mit den Flags in der Struktur anpassen. Ansonsten wirst du wohl deinen eigenen Kopierdialog schreiben müssen.
sintec Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 133



BeitragVerfasst: Mi 15.08.07 11:28 
Danke

Dann werde ich vorher abfragen müssen, ob die Datei schon existiert mit eigener Meldung und dementsprechend reagieren.