Einzelnen Beitrag anzeigen

Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Bild per Drag and Drop ins Programm holen

  Alt 29. Okt 2005, 00:06
Ich hab eigentlich nirgendwo Message.Drop geschrieben, du scheinst dich also auf einen anderen Quelltext zu beziehen. DragQueryFile sollte es in deiner Hilfe geben. Allerdings ist es nicht in der Standardhilfedatei sondern in "MS SDK Help Files -> Win32 Programmer's Reference". Die Hilfe spiegelt also das MSDN wieder. Kurz und Knapp - DragQueryFile ist eine ApiFunktion.

Wenn bei DragQueryFile der zweite Parameter "$FFFFFFFF" ist so gibt die Funktion die Anzahl der gedroppten Dateien zurück. Die restlichen Parameter werden also ignoriert.

Gibt man als zweiten Paremter eine andere Zahl an steht diese für den Index der gedroppten Datei. Also 0 für die erste gedroppte Datei, 1 für die zweite gedroppte datei etc. Gibt man in diesem Zusammenhang als dritten Parameter "nil" an so gibt die Funktion die Länge des gedroppten Filenames zurück. Gibt man einen Wert ungleich "nil" an so wird der Buffer den man angibt mit dem Dateinamen gefüllt.

Zusammengefasst:
AnzahlDerGedropptenDateien := DragQueryFile(Msg.WParam, $FFFFFFFF, nil, 0); DateinamenLaengeVonGedroppterDateiNummer2 := DragQueryFile(Msg.WParam, 1, nil, 0);
Delphi-Quellcode:
var LGedroppteDatei: String;
begin
  DateinamenLaengeVonGedroppterDateiNummer2 := DragQueryFile(Msg.WParam, 1, nil, 0) + 1;
  SetLength(LGedroppteDatei, DateinamenLaengeVonGedroppterDateiNummer2);
  SetLength(LGedroppteDatei, DragQueryFile(Msg.WParam, 1, @LGedroppteDatei[1],
                                           DateinamenLaengeVonGedroppterDateiNummer2));
  ShowMessage(LGedroppteDatei);
end;
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat