Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Panel Lowered und Raised bei MouseMove


mexx - Do 17.11.05 17:08
Titel: Panel Lowered und Raised bei MouseMove
Ich möchte das Panel beim überfahren der Mouse Raised und beim Verlassen den Mauszeigers wieder Lowered. Aber es will mir einfach nicht gelingen. Helft mir bitte!


noidic - Do 17.11.05 17:09

Glaskugeln haben heute Urlaub, könntest du den Code posten und sagen, was genau da nicht geht?


mexx - Do 17.11.05 17:15

Ich habe vier Panel, jedes dieser Panel ist Lowered. Sobald ich mit der Mouse über das Panel fahre wird es Raised indem ich

Panel1.BevelOuter := bvRaised;

mache. Ich möchte aber, dass wenn ich das Panel wieder verlasse, sich das Lowered wieder einstellt.

Wie geht das?

THX, für die schnelle Reaktion!


BattleFrog - Do 17.11.05 17:18

Dafür musst du das Label ein bisschen erwitern, denn die benötigten Ereignisse kennt es noch nicht bzw reagiert net drauf.

Gucks du hier
http://www.delphi-forum.de/viewtopic.php?t=20035

und hier ein Beispiel für ein TImage
http://www.swissdelphicenter.ch/de/showcode.php?id=1068


mexx - Do 17.11.05 17:20

Ich besitze weder MouseOver noch Rollover.


DarkHunter - Do 17.11.05 17:20

Du kannst die aktuelle Cursorposition abfragen, in die Mousemove musst du nur eine Abfrage setzen ob das im Feld ist oder nicht.
Dabei musst du aber beachten, dass dir Die Cursorposition absolut angegeben werden, dh im Bezug zum Desktop, nicht zum Formular.


mexx - Do 17.11.05 17:21

Puhh, geht das nicht einfacher?


noidic - Do 17.11.05 17:22

Wie erreichst du denn bisher, dass das panel geraised wird?


DarkHunter - Do 17.11.05 17:26

user profile iconmexx hat folgendes geschrieben:
Puhh, geht das nicht einfacher?

ich wüsste nicht wie.

Aber hier wäre der Code für ein Panelmousemove

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
var cursorx,cursory:integer;
begin
cursorx := Mouse.cursor.X-form.left;
curosry := Mouse.cursor.Y-form.top;
if (((cursorx > panel.left) and (cursorx < panel.left+panel.width)) 
and ((cursory > panel.top) and (cursory < panel.top+panel.height))) then
  panel.bevelouter := bvraised else panel.bevelouter := bvlowered;
end;