TPanel OnMouseMove



  • Hallo,
    gibt es ein Ereigniss von TPanel wenn ich mit dem Mouse Cursor das Panel
    verlasse, soetwas wie MouseLeave.
    Ich ändere die Farbe des Panels beim Ereigniss OnMouseMove, verlässt der
    Mousecursor nun das Panel soll die Ursprüngliche Farbe wieder hergestellt
    werden.
    Gruß
    Johann



  • Ein OnMouseLeave gibt es meines Wissens nicht. Was du allerdings machen könntest wäre über die Maus-Koordinaten ermitteln, wo sich der Cursor befindet. Hierbei können dir Top, Left, Width und Height von TPanel weiterhelfen. Einfach prüfen wann die Koordinaten größer bzw. kleiner sind als die Breite/Höhe von TPanel.

    Ich hoffe ich konnte dir verständlich machen was ich meine 🙂



  • Vielen Dank für den Tip, finde ich allerdings etwas umständlich.

    Da ich das aktuelle Panel über den übergebenen Zeiger anspreche,
    ((TPanel*)Sender)->Color = cl3DLight, überlege ich den Zeiger
    irgendwie zu speichern und beim nächsten Panel über den alten
    Zeiger des vorherigen Panels die ursprüngliche Farbe wieder
    zurückzusetzen.
    Ich muss dazusagen das ich 20 Panels untereinander habe.

    TPanel* old_panel = 0;
    void __fastcall TForm1::Panel1MouseMove(TObject *Sender, TShiftState Shift,
          int X, int Y)
    {
          if(old_panel != 0)
          {
              old_panel->Color = clMenu;
          }
         ((TPanel*)Sender)->Color = cl3DLight;
         old_panel = ((TPanel*)Sender);
    }
    

    Johann


Anmelden zum Antworten