Hi,
habe einige Panele und darauf einige Labels. Code-Fragment :
Delphi-Quellcode:
procedure Tfrm.LabelMouseEnter(Sender: TObject);
...
if (Sender is TLabel) then begin
Canvas.Brush.Color := clSkyBlue;
Canvas.FillRect (Rect ((Sender as TLabel).Parent.Left-5,
(Sender as TLabel).Parent.Top-5,
(Sender as TLabel).Parent.Left+5 + (Sender as TLabel).Parent.Width+1,
(Sender as TLabel).Parent.Top+5 + (Sender as TLabel).Parent.Height+1));
Canvas.Pen.Color := clNavy;
Canvas.Pen.Width := 4;
Canvas.Rectangle ((Sender as TLabel).Parent.Left,
(Sender as TLabel).Parent.Top,
(Sender as TLabel).Parent.Left + (Sender as TLabel).Parent.Width+1,
(Sender as TLabel).Parent.Top + (Sender as TLabel).Parent.Height+1);
end;
Parent der Labels ist immer ein Panel. Sofern man mit der Maus in die Nähe der Labels kommt, sollen die Panels umrandet und auch gefüllt werden. Folgender Effekt tritt auf : die Umrandung klappt einwandfrei, das Füllen mit anderer Farbe aber nicht.
mit dem -5/+5 im FillRect habe ich zumindest einen Effekt erzielt : außerhalb der Panels ist was zu sehen (5 Pixel breiter Rahmen in clSkyBlue).
So was in der Art geht nicht :
(Sender as TLabel).Parent.Color := clSkyBlue;
Was ist da zu machen ?