Как Сделать Label С Прозрачным Фоном?

IllusionYes

New member
29.11.2014
2
0
#1
Вывожу рисунки функцией Draw на форму из ImageList после нажатия на кнопку.
после изменения текста в лабел прямоугольник фона этого элемента закрывает рисунок.
Свойство Transparent у Label никак не влияет.
Как выйти из положения?
 

sinkopa

Well-known member
17.06.2009
344
4
#2
Вывожу рисунки функцией Draw на форму из ImageList после нажатия на кнопку.
после изменения текста в лабел прямоугольник фона этого элемента закрывает рисунок.
Свойство Transparent у Label никак не влияет.
Как выйти из положения?
Если функцией Draw битмапы рисуете, то лабел дорисовывать придется самому... :)
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
OldBkMode: integer;
OldFont: TFont;
begin
// Bitmap1 - Ваш битмап из ImageList
// Label1 - лабел перекрывающий битмапа

// нарисовали битмап
Canvas.Draw(100,100,Bitmap1); 

// запомнили состояние канвы, включили прозрачность
OldBkMode := SetBkMode(Canvas.Handle, TRANSPARENT);
OldFont := Canvas.Font;

// "починили" текст лабела
Canvas.Font := Label1.Font;
Canvas.TextOut(Label1.Left,Label1.Top,Label1.Caption);

// восстановили исходное состояние канвы
Canvas.Font := OldFont;
SetBkMode(Canvas.Handle, OldBkMode);
end;