Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Betriebssysteme (https://www.delphipraxis.net/27-betriebssysteme/)
-   -   OnDragXXX - Ereignisse wann ausgelöst? (https://www.delphipraxis.net/40504-ondragxxx-ereignisse-wann-ausgeloest.html)

Lernnix 16. Feb 2005 18:27


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:
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;
Auf diese Weise will ich feststellen, wann welches Ereignis eintritt. Aber es passiert NICHTS.
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

Ultimator 16. Feb 2005 18:37

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 :-)

Lernnix 16. Feb 2005 19:49

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

Ultimator 16. Feb 2005 20:20

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 ;-)

Lernnix 16. Feb 2005 21:07

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

Ultimator 16. Feb 2005 21:09

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 ;-)

Lernnix 16. Feb 2005 21:11

Re: OnDragXXX - Ereignisse wann ausgelöst?
 
Danke, werde ich gleich mal machen.

Tschüß

Lernnix


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:58 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz