Problem z kopiowaniem canvasa dynamicznego TLabela

0

Cześć, mam dziwny problem. Chciałem sobie zapisać na dysk canvasa TLabela. Więc napisałem sobie następujący kod testowy:

var
  b: TBitmap;
  label1: TLabel;
begin
  label1:=TLabel.Create(self);
  label1.Parent:=self;
  label1.Font.Assign(Font);
  label1.Caption:='Label_test';
  label1.Top:=0; //dodano później
  label1.Left:=0; //dodano później
  label1.Visible:=true; //dodano później

  b:=TBitmap.Create;
  b.Width:=label1.Width;
  b.Height:=label1.Height;
  b.Canvas.CopyRect(Rect(0, 0, b.Width, b.Height), label1.Canvas, label1.ClientRect);
  b.SaveToFile('C:\test.bmp');
  FreeAndNil(b);
  FreeAndNil(label1);
end;

Co jest efektem takiego kodu? Jest obrazek o odpowiednich rozmiarach i odpowienim kolorze tła, jednak BEZ NAPISU.

O dziwo, jeśli te sam kod wykonam na labelu statycznym(położonym na formie podczas projektowania), wszystko działa.

Czego mi brakuje? Ktoś może oświecić?

0

spróbuj przetworzyć komunikaty, może ten label tak nie do końca istnieje...

1

Tego label1 musisz zmusić do odmalowania zawartości.

0
pelsta napisał(a)

Tego label1 musisz zmusić do odmalowania zawartości.

Damn it, pieprzony repaint i dwie godziny z głowy ;) W życiu bym nie wpadł. Dzięki.

0

brakuje:
label1.Update;

1 użytkowników online, w tym zalogowanych: 0, gości: 1