Hallo mal wieder
so, ich habe mich jetzt seit heute Vormittag durch dieses Forum und die mir zur Verfügung Fachliteratur (Kochbuch Delphi 5 HANSER-Verlag) gequält um eine einigermaßen brauchbare Kopier-Funktion raus zu kriegen.
Ich möchte das mit der ShellAPI machen und habe nun folgenden code fertig:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26:
| procedure TF_Haupt.BBTN_copyClick(Sender: TObject); var i : integer; dateien : string; shellinfo : TSHFileOpStruct; Dateiname : File; begin F_Haupt.I_Anzeige.Picture.Free; dateien := ''; for i := 0 to F_Haupt.FLB_Bilder.Items.Count-1 do begin if F_Haupt.FLB_Bilder.Selected[i] then begin dateien := dateien + F_Haupt.FLB_Bilder.Items[i] + #0; end; end; dateien := dateien + #0; with shellinfo do begin Wnd := handle; wFunc := FO_COPY; pFrom := PChar(dateien); pTo := PChar(F_Haupt.E_Directory.Text + '\'); SHFileOperation(shellinfo); end; end; |
beim Kopieren bekomme ich die Fehlermeldung, dass auf die Quelldatei oder den Quelldatenträger nicht zugegriffen werden kann. Ich vermute, das liegt ganz einfach daran, dass die Datei geöffnet ist, wenn ich Sie kopieren möchte. Die Datei ist zu diesem Zeitpunkt in einer FileListBox ausgewählt und wird in einer Image-Komponente Angezeigt. WIE zum Geier kann ich die Datei schließen, dann kopieren und dann wieder öffnen?
CloseFile möchte ja etwas vom Typ File haben und aus den beiden Komponenten, wo ich infos über die Date herbekommen könnte finde ich eigentlich nur Strings.
HÜÜÜLLLLFFFEEE!!!
THX!
Der Mensch wächst mit seinen Aufgaben *** Wer kämpft kann verlieren, wer nicht kämpft hat schon verloren