Einzelnen Beitrag anzeigen

Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#1

[erledigt] Rechteck füllen

  Alt 2. Mär 2007, 11:57
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 ?
Gruß
Hansa
  Mit Zitat antworten Zitat