Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

Как сделать прозрачным фон текста

Delphi , Графика и Игры , Canvas

Как сделать прозрачным фон текста

Используйте функцию SetBkMode():


procedure TForm1.Button1Click(Sender: TObject);
var
  OldBkMode: integer;
begin
  with Form1.Canvas do
  begin
    Brush.Color := clRed;
    FillRect(Rect(0, 0, 100, 100));
    Brush.Color := clBlue;
    TextOut(10, 20, 'Not Transparent!');
    OldBkMode := SetBkMode(Handle, TRANSPARENT);
    TextOut(10, 50, 'Transparent!');
    SetBkMode(Handle, OldBkMode);
  end;
end;

Here's the translation of the content into Russian:

Код, который вы предоставили, пытается сделать текст прозрачным с помощью функции SetBkMode в Delphi. Однако, он не является корректным.

Вот разбивка того, что код делает:

  1. Он устанавливает цвет кисти в красный и заливает прямоугольник на канвасе.
  2. Он устанавливает цвет кисти в синий и пишет текст ("Не прозрачный!") на позиции (10, 20) на канвасе.
  3. Он сохраняет текущий режим фона с помощью SetBkMode с аргументом TRANSPARENT. Это переключит режим фона в прозрачный для следующего операции рисования.
  4. Он пишет еще текст ("Прозрачный!") на позиции (10, 50) на канвасе.
  5. Наконец, он восстанавливает оригинальный режим фона с помощью SetBkMode с сохраненным значением.

Однако, это не сделает текст прозрачным, потому что TRANSPARENT не означает "сделать текст прозрачным". Вместо этого, он означает, что любая операция рисования не должна заливать фон (например, при рисовании прямоугольника).

Чтобы достичь прозрачного текста в Delphi, вы можете использовать свойство Font.Color и установить его в полупрозрачный цвет. Вот пример:

procedure TForm1.Button1Click(Sender: TObject);
var
  OldBkMode: integer;
begin
  with Form1.Canvas do
  begin
    Brush.Color := clRed;
    FillRect(Rect(0, 0, 100, 100));
    Font.Color := ColorToRGB(clBlue, 128); // Установка синего цвета с 50% прозрачностью
    TextOut(10, 20, 'Прозрачный!');
    OldBkMode := SetBkMode(Handle, TRANSPARENT);
    TextOut(10, 50, 'Не прозрачный!');
    SetBkMode(Handle, OldBkMode);
  end;
end;

В этом коде свойство Font.Color устанавливается в полупрозрачный синий цвет с помощью функции ColorToRGB. Это сделает текст appear с прозрачным фоном.

Обратите внимание, что вам нужно調кать значение прозрачности (128 в этом примере) для достижения желаемого уровня прозрачности.

Для создания прозрачного фонта текста в Delphi можно использовать функцию SetBkMode, которая временно изменяет режим рисования на канвасе.


Комментарии и вопросы


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Canvas ::


реклама



©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru Rambler's Top100

Время компиляции файла: 2024-05-19 17:53:24
2024-05-19 22:02:34/0.0049169063568115/2