Najpierw zamaluj wybranym kolorem to co już narysowała etykieta domyślnie, a dopiero później coś sam maluj; Czyli najpierw ustaw sobie kolor tła i je zamaluj, a dopiero później namaluj swój tekst:
with Label1.Canvas do
begin
Brush.Color := clWhite;
FillRect(ClientRect);
Label1.Canvas.TextOut(10, 10, Label1.Caption);
end;
Powyższe kolory i współrzędne są przykładowe, więc podstaw w ich miejsce te odpowiednie;
A jeśli wszystkie etykiety na formularzu mają być w ten sposób malowane, to lepiej będzie nadpisać metodę Paint
z klasy TLabel
przed deklaracją klasy formularza:
interface
uses
Forms, Graphics, StdCtrls;
type
TLabel = class(StdCtrls.TLabel)
public
procedure Paint(); override; // nadpisujemy wirtualną metodę Paint
end;
type
TForm1 = class(TForm) // Twoja klasa formularza...
Label1: TLabel; // ...ze wszystkimi etykietami
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
procedure TLabel.Paint(); // tu określasz nowe malowanie komponentu
begin
with Self.Canvas do
begin
Brush.Color := clWhite;
FillRect(Self.ClientRect);
Canvas.TextOut(10, 10, Caption);
end;
end;
end.
Dzięki temu już nic więcej nie będziesz musiał oprogramowywać, a komponent domyślnie będzie rysowany tak, jak sobie tego życzysz.