Hallo,
ich benutze diesen Code, um Dateinamen per Drag&Drop einzulesen:
<pre>
{************************************************* ****************************}
procedure TForm1.WMDROPFILES(var Msg: TMessage);
var
iCnt : Integer;
Count : Integer;
Size : Integer;
Filename : PChar;
begin
inherited;
Count := DragQueryFile(Msg.wParam,$FFFFFFFF,Filename,255);
For iCnt := 0 to Count -1 do
begin
Size := DragQueryFile(Msg.wParam,iCnt,Nil,0) +1;
Filename := StrAlloc(Size);
DragQueryFile(Msg.wParam,iCnt,Filename,Size);
memo1.lines.add(filename);
StrDispose(Filename);
end;
DragFinish(Msg.wParam);
end;
{************************************************* ****************************}
procedure TForm1.FormCreate(Sender: TObject);
begin
DragAcceptFiles(self.Handle,True);
end;
{************************************************* ****************************}
</pre>
Interessant: Wenn ich nun borderstyle des Formulares auf bsNone setze, funktioniert das nicht mehr (auch der Cursor zeigt ein Stopzeichen), auch nach dem Zurücksetzen auf bsSizeable geht nichts mehr.
Das Problem tritt nur nach dem "Umschalten" auf, wenn das Programm mit borderstyle = bsNone gestartet wird, geht alles.
Wie kann ich das ändern? Hängt es vielleicht mit dem Handle des Formulares zusammen, das sich ändert?
Danke im Voraus.
Felix
ich benutze diesen Code, um Dateinamen per Drag&Drop einzulesen:
<pre>
{************************************************* ****************************}
procedure TForm1.WMDROPFILES(var Msg: TMessage);
var
iCnt : Integer;
Count : Integer;
Size : Integer;
Filename : PChar;
begin
inherited;
Count := DragQueryFile(Msg.wParam,$FFFFFFFF,Filename,255);
For iCnt := 0 to Count -1 do
begin
Size := DragQueryFile(Msg.wParam,iCnt,Nil,0) +1;
Filename := StrAlloc(Size);
DragQueryFile(Msg.wParam,iCnt,Filename,Size);
memo1.lines.add(filename);
StrDispose(Filename);
end;
DragFinish(Msg.wParam);
end;
{************************************************* ****************************}
procedure TForm1.FormCreate(Sender: TObject);
begin
DragAcceptFiles(self.Handle,True);
end;
{************************************************* ****************************}
</pre>
Interessant: Wenn ich nun borderstyle des Formulares auf bsNone setze, funktioniert das nicht mehr (auch der Cursor zeigt ein Stopzeichen), auch nach dem Zurücksetzen auf bsSizeable geht nichts mehr.
Das Problem tritt nur nach dem "Umschalten" auf, wenn das Programm mit borderstyle = bsNone gestartet wird, geht alles.
Wie kann ich das ändern? Hängt es vielleicht mit dem Handle des Formulares zusammen, das sich ändert?
Danke im Voraus.
Felix
Comment