Delphi - TLabel komponens szövegének megjelenítése a betűk körvonal rajzával

forráskód letöltése
Ebben a példában egy olyan TLabel komponenst készítünk, melyben nem csak a szövegnek adható meg egy szín, hanem a szöveg körvonalának is. Így kiírhatunk szöveget akár csak annak a körvonalával is, ha például a betűszínt a háttérszínre állítjuk, de választhatunk akár két különböző színt is a megjelenítéshez. A mellékelt példaprogram megnyitása előtt az OutlineLabel.pas-ban lévő komponenst telepítenie kell a Delphi alá.

A komponens Caption property-ébe írt szöveget jeleníti meg a Font property-ben megadott betűtípussal. A szöveg körvonalának kinézetét az OutlinePen nevű TPen típusú property-n keresztül adhatjuk meg.

Komponensünk a TGraphicControl-ból származik, így rendelkezésünkre áll a Paint eljárás, melyet felülírva tetszőleges grafikát jeleníthetünk meg a komponens területén. Itt felhasználva a BeginPath - EndPath függvények által kínál lehetőségeket, kirajzoljuk a Caption-ban megadott szöveget, majd StrokeAndFillPath segítségével megjelenítjük azt. Az xxxPath nevű függvények részletes leírása az alább hivatkozott cikkekben részletesen megtalálhatók, így itt most nem ismételnénk magunkat.
procedure TOutlineLabel.Paint;
begin
  inherited;
  with Canvas do begin
    if FCaption<>'' then begin
      Width:=TextWidth(FCaption);
      Height:=TextHeight(FCaption);
    end;
    BeginPath(Handle);
    Font.Assign(FFont);
    Pen.Assign(FOutlinePen);
    Brush.Style:=bsClear;
    TextOut(0, 0, FCaption);
    EndPath(Handle);
    Brush.Style:=bsSolid;
    Brush.Color:=FFont.Color;
    StrokeAndFillPath(Handle);
  end;
end;