Hallo,
dieser
Beitrag von
shubbi brachte mich auf eine andere Idee. Da offensichtlich die Nachrichtenverarbeitung durch die geschachtelten Drag&Drop-Operationen gestört wird, sollte das modale Fenster erst dann geöffnet werden, wenn die erste Drag&Drop-Operation beendet ist. Die Anwendung schickt sich dazu selbst eine Nachricht (mit PostMessage!) und öffnet das Fenster erst beim Eintreffen dieser Nachricht:
Delphi-Quellcode:
const
WM_ShowSecondForm = WM_USER + 1;
type
TForm1 =
class (TForm)
:
private
procedure WMShowSecondForm (
var aMessage: TMessage);
message WM_ShowSecondForm;
end;
procedure TForm1.WMShowSecondForm (
var aMessage: TMessage);
var
Form : TForm2;
begin
Form := TForm2.create(
nil);
Form.ShowModal;
Form.Release;
end;
procedure TForm1.Image1DragDrop (Sender, Source: TObject; X, Y: Integer);
begin
PostMessage (
Handle, WM_ShowSecondForm, 0, 0);
end;
Dieses Vorgehen scheint den Fehler zu beheben.
Gruß Hawkeye