Autor Beitrag
Stübi
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 331

Win XP, Win 2000, Win ME
D5 Ent, D7 Prof, D2005 PE, C#
BeitragVerfasst: Di 30.11.04 10:29 
Hallo Zusammen

Ich kann in meinem Programm über einen Opendialog eine Datei einlesen und diese dann meinen wünschen nach weiterverarbeiten. Jetzt möchte ich neu auch noch, dass ich die Datei die sich auf dem z.B.: Desktop befindet per Drag and Drop auf mein Programm ziehen kann und dann die gleichen Anweisungen durchlaufen werden wie beim Opendialog.
Ich habe bereits im OnCreate den folgenden Code
ausblenden Delphi-Quelltext
1:
DragAcceptFiles(self.handle, true);					

eingebunden damit Windows dies überhaupt unterstüzt.
Ich kann ausserdem mit der procedure
ausblenden Delphi-Quelltext
1:
procedure TMainFrameQKeyReader.WMDropFiles(var Msg: TWMDropFiles);					

das Drag-Erreignis abfangen, das Einzige was mir fehlt, ist der Dateipfad und wieviele Dateien mitgegeben wurden (darf nur eine weitergegeben sein).

Naja ist glaub ich etwas umständlich beschrieben.

Danke schon mal für die Hilfe

Gruss Stübi

_________________
Neun von zehn Stimmen in meinen Kopf sagen, dass ich nicht verrückt sei. Die zehnte summt die Tetrismelodie.
Stübi Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 331

Win XP, Win 2000, Win ME
D5 Ent, D7 Prof, D2005 PE, C#
BeitragVerfasst: Di 30.11.04 14:46 
Naja, bin selbst (vieleicht) etwas weiter gekommen, aber immer noch nicht wirklich merklich weiter:
Ich habe den Befehl
ausblenden Delphi-Quelltext
1:
DragQueryFile(HDROP hDrop,UINT iFile, LPTSTR lpszFile,  UINT cch);					

gefunden. Jedoch schaffe ich es nicht diesen richtig anzuwenden und die Delphi-Hilfe bringt mich auch nicht wirklich weiter :cry:
Von Der Procedure habe ich diese 4 Werte die ich gebrauchen kann:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
  TWMDropFiles = packed record
    Msg: Cardinal;
    Drop: THANDLE;
    Unused: Longint;
    Result: Longint;
  end;


Ich möchte weiterhin in einen String den Pfad speichern können, und überprüfen können ob wirklich nur ein File auf mein Programm gezogen wurde, wenn mehr als ein File darauf gezogen wurde soll ein Fehler ausgegeben werden oder von mir aus gar nichts gemacht werden, aber dass kann ich selbst solange ich weiss wieviele Files es sind.

Stübi

_________________
Neun von zehn Stimmen in meinen Kopf sagen, dass ich nicht verrückt sei. Die zehnte summt die Tetrismelodie.
herzi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 168

WINXP pro, SUSE Linux 9.0
D7 Pers.
BeitragVerfasst: Mi 01.12.04 22:32 
dies hilft dir bestimmt weiter

www.swissdelphicente.../showcode.php?id=493
Stübi Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 331

Win XP, Win 2000, Win ME
D5 Ent, D7 Prof, D2005 PE, C#
BeitragVerfasst: Do 02.12.04 08:39 
stimmt hat mir weitergeholfen
Habe das ganze mit der Hilfe vom Swissdelphicenter lösen können, ich überprüfe die Variabel iFileCount, ob nur ein File übergeben wurde und das PChar, ob der richtige Filetyp gedroppt wurde und so funktioniert dann das ganze so wie es soll.

@herzi Danke für die Hilfe

Gruss Stübi

_________________
Neun von zehn Stimmen in meinen Kopf sagen, dass ich nicht verrückt sei. Die zehnte summt die Tetrismelodie.
herzi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 168

WINXP pro, SUSE Linux 9.0
D7 Pers.
BeitragVerfasst: Do 02.12.04 21:33 
kein Problem

gern geschehen :)