Anwendung von PtInRegion()
17. Apr 2007, 11:35
Hey,
ich habe ein Problem bei der Anwendung von PtInRegion. Mein Programm besteht aus einer MainForm, auf dieser MainForm sind dann verschiedene Forms drauf und ausgerichtet (Menü, Buttonbar, Arbeitsfläche). Die Arbeitsfläche macht etwa 2/3 der gesamten MainForm aus. Auf dieser Arbeitsfläche kann nun auch eine zusätzliche Form eingeblendet werden, die detailierte Informationen ausgibt. Diese Form ist Enabled := False und wird nur unter bestimmten Bedingungen aktiviert. Das besondere an dieser Form ist, dass sie nicht rechteckig ist, sondern ein Polygon. Wenn ich mit dem Cursor über den Arbeitsbereich gehe dann bekommt diese eine bestimmte Form. Da die meine Polygon-Form nun nicht Enabled ist, wird wenn ich mit der Maus darüber gehe auf der Form kein MouseMove-Event ausgelöst sondern von der Form darunter. Aber ich bin ja mit dem Cursor auf der Polygon-Form. Durch das Auslösen des MouseMove-Event wird nun der Cursor auch auf meiner Polygon-Form gesetzt. Das ist aber nicht richtig so, denn die soll den normalen Cursor haben.
Ich dachte mir dazu, dass ich nun einfach im MouseMove des Arbeitsbereiches ein
If ( PtInRegion(fForm.Handle, X, Y) Then
stelle und dann den Cursor setze. Aber die Abfrage ergibt immer False. Ich habe auch schon die Koordinaten vorher mit fForm.ScreenToSclient auf die Koordinaten der Form konvertiert. Dies bringt aber auch keinen Erfolg. Habt ihr Erfahrungen mit PtInRegion über mehrere Forms hinweg?
P.S. Das, dass Konzept mit den mehreren Forms nicht gerade das beste ist weiß ich. Frames wären dort wahrscheinlich besser.
Michael Klüber Delphi ist was solides und besteht nicht wie C/C++ Quelltext nur aus Kommentaren.
|