Einzelnen Beitrag anzeigen

Micha88
(Gast)

n/a Beiträge
 
#8

Re: Selektionsrahmen um Komponente zeichnen?

  Alt 7. Mär 2009, 15:52
Ich habe die Lösung da oben mal etwas umgeschrieben, ob es für jeden sinnvoll ist weis ich nicht:

Delphi-Quellcode:
{
iPw: PenWidth kann nun bei jedem Control selbst mitgegeben werden.
iSp: Spacing, Abstand vom Control nach links und rechts.
iPd: Padding, Abstand vom Control nach oben und unten.
}

procedure Decorate(hdc: HDC; r: TRect;
 penColor: TColor; iPw, iSp, iPd: ShortInt); // Änderung: iPw, iSp, iPd
begin
  with TCanvas.Create do
  try
    Handle := hdc;
    Pen.Width := iPw;
    Pen.Color := penColor;
    InflateRect(r, iSp, iPd);
    Brush.Style := bsClear;
    Rectangle(r);
  finally
    Free;
  end;
end;

procedure TForm1.Label1MouseEnter(Sender: TObject);
begin
 with Sender as TLabel do
  Decorate(GetDC(Handle), BoundsRect, clHighlight, 1, 10, 20);
end;

procedure TForm1.Label1MouseLeave(Sender: TObject);
begin
 with Sender as TLabel do
  Decorate(GetDC(Handle), BoundsRect, self.Color, 1, 10, 20);
end;
  Mit Zitat antworten Zitat