Problem z kopiowaniem canvasa dynamicznego TLabela

Problem z kopiowaniem canvasa dynamicznego TLabela
JU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5046
0

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

Kopiuj
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ć?

AR
  • Rejestracja: dni
  • Ostatnio: dni
0

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

pelsta
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 819
1

Tego label1 musisz zmusić do odmalowania zawartości.

JU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5046
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.

_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
0

brakuje:
label1.Update;

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.