![]() |
OnDragXXX - Ereignisse wann ausgelöst?
Hallo!
Ich habe folgendes Problem: Wenn ich ein Fenster (Form2) über ein Panel schiebe, will ich OnDragXXXX Ereignisse auslösen. Mein Problem ist, es pessiert nichts. Ich habe Eventhandler der folgenden Form für jedes OnDragXXXX Ereignis geschrieben:
Delphi-Quellcode:
Auf diese Weise will ich feststellen, wann welches Ereignis eintritt. Aber es passiert NICHTS.
unit Unit1;
uses //<Die VCL Units>, Unit2; //Die mit Form2 type TForm1 = class(TForm) Panel: TPanel; //Hier sollen die Ereignisse ausgelöst werden procedure FormCreate(Sender: TObject); procedure PanelDragOver(Sender: TObject); procedure PanelDragDrop(Sender: TObject); procedure PanelEndDrag(Sender: TObject); private { private Deklarationen } public { public Deklarationen } end; procedure TForm1.FormCreate(Sender: TObject); begin Form2.Visible := true; //wird schon beim Start erzeugt (Application.CreateForm(....)) end; procedure TForm1.PanelDragOver(Sender: TObject); begin ShowMessage('OnDragOver'); end; procedure TForm1.PanelDragDrop(Sender: TObject); begin ShowMessage('OnDragDrop'); end; procedure TForm1.PanelEndDrag(Sender: TObject); begin ShowMessage('OnEndDrag'); end; Keine der Messages wird angezeigt. Die OnMouseXXX funzen, wenn ich nur mit dem Mauszeiger über dem Panel bin. Wenn ich Form2 mit der Maus anfasse und über das Panel schiebe, bleibt das Panel stumm. Warum. Was muß ich machen, um die Ereignisse so auszulösen, wie es der obige Quelltext suggeriert. Muß ich etwa dieselben Ereignisse aus Form2 verwenden, um mein Zeil zu erreichen? Warte verzweifelt auf Eure Hilfe Lernnix |
Re: OnDragXXX - Ereignisse wann ausgelöst?
Woher soll denn auch Delphi wissen, dass du etwas anzeigen lassen willst?
Am Prozedurnamen wohl kaum ;-) Vermutlich kommst du hier weiter, indem du auf Messages reagierst :-) |
Re: OnDragXXX - Ereignisse wann ausgelöst?
Böse Falle, grad das wollt ich umgehen. Hab mich bisher davor gedrückt. Passt mir also gar nicht, das ich an Messages und dem Zeug hier nicht vorbeikomme. Nun denn, dann werd ich mir mal Luckies WinAPI Handbücher vornehmen, und mir ein gutes Buch über Delphi-Programmierung besorgen. Werde wohl da ne Weile brauchen mit dem Lernen.
Danke für die Antwort |
Re: OnDragXXX - Ereignisse wann ausgelöst?
So schwierig ist das mit den Messages gar nicht ;-)
Delphi-Quellcode:
type TMyPanel = class(TPanel)
private procedure WMLButtonDown(Msg: TWMLButtonDown); message WM_LBUTTONDOWN; public //bla end; implementation TMyPanel.WmLButtonDown(Msg: TWMLButtonDown); begin ShowMessage('Du hast mich gedrückt!'); end; Das wäre jetzt ein Panel, das auf OnClick reagiert ;-) (Ist zwar Schwachsinn, weils das eh tut, aber soll ja nur n Beispiel sein :zwinker:) Code ohne Garantie, müsste aber gehen ;-) |
Re: OnDragXXX - Ereignisse wann ausgelöst?
Hallo Ultimator!
So klatt das schon mal. Heißen Dank. Und wo gibts, möglicht im Internet ne Doku zu allen unterstützten Messages? Ich guck inzwischen mal auf Luckies Seite und in DelphiSource.de Tschüß Lernnix |
Re: OnDragXXX - Ereignisse wann ausgelöst?
Du hast ja Delphi 5 Professional.
Schau mal in die Unit Messages.pas, da müsstest du fündig werden ;-) |
Re: OnDragXXX - Ereignisse wann ausgelöst?
Danke, werde ich gleich mal machen.
Tschüß Lernnix |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz