Tach auch ...
Hm ... keine Antwort ... entweder zu speziell
oder meine Frage war unklar formuliert.
Vielleicht wird alles mit Hilfe von etwas Source
Code deutlicher.
Meine DragDrop-Routine sieht ein wenig vereinfacht
in etwa so aus:
Delphi-Quellcode:
interface
type
TForm1 =
class(TForm)
private
procedure WMDropFiles(
var Msg: TWMDropfiles);
message WM_DROPFILES;
end;
implementation
procedure TForm1.FormCreate(Sender: TObject);
begin
DragAcceptFiles(
Handle , True);
.
.
.
end;
procedure TForm1.WMDropFiles(
var Msg: TWMDropfiles);
Const Mask:
Array[Boolean]
Of Longint = (0, ILC_MASK);
var aFile: PChar; fos: TSHFileOpStruct;
begin
inherited;
aFile := StrAlloc(255);
DragQueryFile (Msg.Drop, 0, aFile, 255);
DragQueryPoint(Msg.Drop, Pt);
TempIcon := TIcon.Create; Changes := True;
// auslesen und zuweisen
TempIcon.Handle := ExtractAssociatedIcon(Application.Handle, aFile, IconIndex);
.
.
.
StrDispose(aFile);
DragFinish(Msg.Drop);
TempIcon.Free;
end;
Nicht wirklich aufregend, aber es läuft.
Was muss ich an der Routine ändern, damit sie
nicht nur Dateien akzeptiert sondern auch
den 'Arbeitsplatz' die 'Netzwerkumgebung'
den 'Papierkorb' usw.
Danke fürs Nachgrübeln.