• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

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

  • Автор темы IllusionYes
  • Дата начала
I

IllusionYes

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

sinkopa

Вывожу рисунки функцией 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;
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!