Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Panel color ändern beim Verlassen vom Panel (https://www.delphipraxis.net/42649-panel-color-aendern-beim-verlassen-vom-panel.html)

Tau 22. Mär 2005 01:13


Panel color ändern beim Verlassen vom Panel
 
Hallo zusammen

ich möcht ein Panel mit einer anderen Farbe befüllen
wenn der Mauszeiger sich über dem Panel befindet.

Code:
procedure TForm1.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
  case TComponent(Sender).Tag of
    10: begin
          Panel1.Color := clAqua;
        end;
    20: begin
          Panel2.Color := clAqua;
        end;
    30: begin
          Panel3.Color := clAqua;
        end;
    end;
end;
habe aber Schwierigkeiten wenn der Mauszeiger nicht mehr
über dem Panel ist die Farbe wieder umzustellen z.B. auf clBtnFace. :gruebel:

Kann mir vielleicht jemand einen Tipp geben wie ich feststellen
kann das der Mauszeiger nicht mehr über dem Panel ist.

Schöne Grüsse
Tau

PS. Ich hoffe ich habe mich verständlich ausgedrückt.

GimbaR 22. Mär 2005 01:33

Re: Panel color ändern beim Verlassen vom Panel
 
Wenn ich das jetzt richtig verstanden habe, gibts für mich da zwei lösungen:
1.) du setzt die anderen bei der Mausbewegung alle Panel.Color auf btnFace und änderst dann die Frabe

oder

2.) du nimmst die Brechstange und guckst alle 1000 msecs wo sich der mauszeiger befindet und änderst dem entsprechend die farbe...

der quelltext für variante 1.) würde imho ungefähr so aussehen:
Delphi-Quellcode:
procedure TForm1.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
var
  i: Integer;
begin
  //--->Einafch bei allen Panels Color auf BtnFace setzten
  for i:= 0 to 3 do //können auch mehrere sein ;)
    (Form1.FindComponent('Panel' + IntToStr(i)) as TPanel).Color:= BtnFace;
  //--->/Fertisch^^
  case TComponent(Sender).Tag of
    10: begin
          Panel1.Color := clAqua;
        end;
    20: begin
          Panel2.Color := clAqua;
        end;
    30: begin
          Panel3.Color := clAqua;
        end;
    end;
end;

Pr0g 22. Mär 2005 01:36

Re: Panel color ändern beim Verlassen vom Panel
 
Du könntest auch das "OnMouseMove" des Parents nutzen, bspw. der Form, denn wenn man den Mauszeiger von Panel runternimmt kommt er ja auf die Fläche darunter (ausgenommen, die Panels liegen alle nebeneinander und das Parent ist nciht sichtbar).

MfG Pr0g

Tau 22. Mär 2005 02:12

Re: Panel color ändern beim Verlassen vom Panel
 
Hallo GimbaR / Pr0g

Code:
//--->Einfach bei allen Panels Color auf clBtnFace setzten
for i:= 0 to 3 do //können auch mehrere sein ;)
  (Form1.FindComponent('Panel' + IntToStr(i)) as TPanel).Color:= clBtnFace;
//--->/Fertisch^^
habe es versucht aber leider bekomme ich eine Exception ( Zugriffsverletzung bei Adresse 00000070 )

PrOg

wenn ich einen zu geringen abstand zwischen den Panel
habe oder ich fahre mit der Maus etwas schnelle über
die Panel dann klappt es leider nicht. Einige Panel bleiben Färbig. :wall:


gibt es noch andere Vorschläge :?:

Schöne Grüße,
Tau

Sharky 22. Mär 2005 05:59

Re: Panel color ändern beim Verlassen vom Panel
 
Zitat:

Zitat von Tau
Hallo zusammen

ich möcht ein Panel mit einer anderen Farbe befüllen
wenn der Mauszeiger sich über dem Panel befindet.....

Hai Tau,

Christian Seehase hat in diesem Beitrag genau das was Du machen möchtest gezeigt.

Tau 22. Mär 2005 11:16

Re: Panel color ändern beim Verlassen vom Panel
 
Hallo Sharky

währst du eine Frau dann würde ich dich Küssen.

aber trotzdem :dancer2: :witch: Danke :witch: :dancer2:

ist genau das was ich gesucht habe.


schöne Grüße,
Tau

:hi:

sniper_w 22. Mär 2005 11:36

Re: Panel color ändern beim Verlassen vom Panel
 
Bei JvPanel (JEDI) gibt es eine Eigenschaft "HotTrack : Boolean". :wink:


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