Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Ereignisse abfangen (https://www.delphipraxis.net/57148-ereignisse-abfangen.html)

K-Asche 16. Nov 2005 14:20


Ereignisse abfangen
 
Hi @ all,

bin absoluter Neuling, was Delphi angeht. normalerweise code ich in C++.
Hab da ein Verständnisproblem.
Ich habe eine Unit mit einem eigens kreiierten Control der über die MainForm ausgegeben wird.
Nun möchte ich aus der MainForm abfangen, wenn ich mit der Maus über dieses Control fahre.
Ich weiß jetzt schon, dass es sich um die Nachricht CM_MOUSEENTER handelt und wie ich die Procedure dafür deklariere weiß ich auch.
Jetzt muss ich diese Prozedur ja über die MainForm aufrufen, möchte aber, das er beim darüberfahren mit der maus innerhalb des Controls in der Unit etwas macht.
Jetzt hab ich schon überlegt, mit der Eigenschaft OnMouseEnter von TNotifyEvent zu arbeiten, bekomm das aber noch net so ganz hin.
Hoffe es versteht wer was ich mein und kann mir da weiterhelfen.

Gruß

Karsten

ichbins 16. Nov 2005 14:28

Re: Ereignisse abfangen
 
Hallo,

willkommen in der Delphi-PRAXiS! :party:

platzierst du die Komponente (das Control) gleich in der Entwicklungsumgebung oder erstellst du sie erst während dem laufenden Programm?

Wenn du sie in der Entwicklungsumgebung platzierst, kannst du ja im Objektinspektor im Tab "Ereignisse" auf das Feld hinter onmouseover doppelklicken. Dann erstellt Delphi automatisch die entsprechende Prozedur.

K-Asche 16. Nov 2005 14:36

Re: Ereignisse abfangen
 
Danke :cheers:

Ich erstell das Ctrl erst zur Laufzeit.

DGL-luke 16. Nov 2005 14:46

Re: Ereignisse abfangen
 
du kannst der eigenschaft TControl.OnSomeEvent während der Laufzeit einen Funktionspointer zuweisen:

Delphi-Quellcode:
procedure MyNotify(Sender:TObject);
begin
//blabla
end;

//irgendwo:
MyControl.OnSomeEvent := @MyNotify;

K-Asche 16. Nov 2005 15:07

Re: Ereignisse abfangen
 
Das funzt auch nicht.
er springt nicht in die Prozedur.

glkgereon 16. Nov 2005 15:23

Re: Ereignisse abfangen
 
Zitat:

Zitat von K-Asche
Das funzt auch nicht.
er springt nicht in die Prozedur.

Wenn es keinen Fehler gibt, dann ist es wohl so, das das Event nie ausgelöst wird.

kannst du vielleicht etwas mehr Code zeigen?

btw, geht es nicht auch so:

Delphi-Quellcode:
T = class
public
  SomeEvent: TNotifyEvent;
implementation
procedure Ready(Sender: TObject);


SomeEvent:=Ready;
so mach ich es und das funzt....

K-Asche 16. Nov 2005 15:37

Re: Ereignisse abfangen
 
Sowas hab ich auch schon probiert, da reagiert er gar nicht drauf.

Kann es sein, dass das Ereignis nicht ausgelöst wird, weil meine MainForm noch in eine übergordnete Form eines Controls ähnlich dem Explorer eingebettet ist?

Ich hatte nämlich auch ein ähnliches Problem mit dem Abfangen des Key Events F5 Taste drücken. Funzte so auch nicht aber nach dem ich eine Baumstruktur eingebaut habe und den Focus auf das Root - Element gesetzt habe, da ging es dann.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:07 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