Autor Beitrag
Do0mJump3R
Hält's aus hier
Beiträge: 10



BeitragVerfasst: Di 18.03.08 13:34 
Hallo liebe Delphigemeinde,

bin neu hier und hoffe das ihr mir bei einigen meiner Frage helfen könnt.
Und zwar:

Ich möchte mittels eines kleinen Proggis ganze Verzeichnisse in die Zwischenablage kopieren, damit man später nur noch strg+v im gewünschten Zielordner drücken muss.

Hoffe ihr könnt mir da ein wenig auf die Sprünge helfen!!!

Thx im Voraus.

Gruß
Do0mJump3R
Xentar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: Di 18.03.08 14:34 
Windows kopiert auch nicht das komplette Verzeichnis (würde zu lange dauern; zu viel Speicher verbrauchen)
Ich denke, dass nur eine Art Referenz auf die Quelldatei gemerkt wird. (Wenn man die Datei daanch umbenennt, bekommt man nur eine Fehlermeldung)

Kopier doch mal ein Verzeichnis im Explorer in die Zwischenablage, und schau dir dann mit einem Delphi Prog an, was da drin steht.
Stichwort TClipboard
Do0mJump3R Threadstarter
Hält's aus hier
Beiträge: 10



BeitragVerfasst: Sa 26.04.08 11:48 
Sorry, aber habs bis jetzt immer noch nicht geschafft.

Wie kann ich den Inhalt des ClipBoards auslesen?
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Sa 26.04.08 12:29 
Wenn die Zwischenablage Text enthält geht das mit ClipBoard.AsText (ClipBrd einbinden). Aber ich glaube, das geht nicht bei Dateien / Verzeichnissen. Vielleicht helfen dir andere Eigenschaften / Prozeduren / Funktionen von ClipBoard.
zongo-joe
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 134

win xp prof
D3, D4, D7
BeitragVerfasst: Sa 26.04.08 15:30 
So ganz verstehe ich das Problem nicht: ganze Verzeichnisse kannst Du ja auch mit dem Windows Explorer flott kopieren.
Um mit Delphi ganze Verzeichnisse zu kopieren, musst Du das Start und Zielverzeichnis halt (zB ShellTreeView) auswählen und mit copyfile die Dateien kopieren.
Oder habe ich da was überlesen ?
Gruß,
zongo
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Sa 26.04.08 15:49 
user profile iconzongo-joe hat folgendes geschrieben:
Um mit Delphi ganze Verzeichnisse zu kopieren, musst Du das Start und Zielverzeichnis halt (zB ShellTreeView) auswählen und mit copyfile die Dateien kopieren.

CopyFile kopiert nur Dateien.

Wenn du den Benutzer den Zielort einfach auswählen lassen willst, helfen dir ShellListView und ShellTreeView (ab Delphi 4) weiter. Die beiden lassen sich einfach verknüpfen und somit entsteht so etwas wie ein vereinfachter Explorer. Wenn der User den Ort ausgewählt hat, kannst du die Dateien kopieren:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
function Kopieren(const Quell, Ziel: string): boolean;
var
  sh: TSHFileOpStruct;
begin
  sh.Wnd := Application.Handle;
  sh.wFunc := fo_Copy;
  sh.fFlags := fof_Silent or fof_MultiDestFiles or fof_NOCONFIRMATION;

  // String muss mit #0 Terminiert werden, um das Listenende zu setzen
  sh.pFrom := PChar(Quell + #0);
  sh.pTo := PChar(Ziel + #0);

  Result := ShFileOperation(sh)=0;
end;