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

Тема в разделе "Delphi - Компоненты", создана пользователем IllusionYes, 29 ноя 2014.

  1. IllusionYes

    IllusionYes New Member

    Регистрация:
    29 ноя 2014
    Сообщения:
    2
    Симпатии:
    0
    Вывожу рисунки функцией Draw на форму из ImageList после нажатия на кнопку.
    после изменения текста в лабел прямоугольник фона этого элемента закрывает рисунок.
    Свойство Transparent у Label никак не влияет.
    Как выйти из положения?
     
  2. sinkopa

    sinkopa Well-Known Member

    Регистрация:
    17 июн 2009
    Сообщения:
    344
    Симпатии:
    9
    Если функцией Draw битмапы рисуете, то лабел дорисовывать придется самому... :)
    Код (Delphi):
    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;
     
Загрузка...

Поделиться этой страницей