Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Вывести полупрозрачный текст

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

Вывести полупрозрачный текст



procedure TForm1.FormPaint(Sender: TObject);
var
  x, y: integer;
  bm: TBitMap;
begin
  Form1.ClientWidth := 200;
  Form1.ClientHeight := 100;
  randomize;
  for x := 0 to 199 do
    for y := 0 to 99 do
      if random(3) = 1 then
        Form1.Canvas.Pixels[x,y] := clGreen
      else
        Form1.Canvas.Pixels[x,y] := clLime;
  bm := TBitMap.Create;
  bm.Width := 200;
  bm.Height := 100;
  with bm.Canvas do
  begin
    Brush.Color := clGreen;
    FillRect(ClipRect);
    Font.name := 'Arial';
    Font.Size := 50;
    Font.Color := clGray;
    Font.Style := [fsBold];
    TextOut((bm.Width - TextWidth('Text')) div 2,
    (bm.Height - TextHeight('Text')) div 2, 'Text');
  end;
  Form1.Canvas.CopyMode := cmSrcPaint;
  Form1.Canvas.CopyRect(bm.Canvas.ClipRect, bm.Canvas,
  bm.Canvas.ClipRect);
  bm.Destroy;
end;

Вот перевод текста на русский язык:

Этот фрагмент кода Delphi рисует форму с полупрозрачным текстом на ней. Вот разбивка того, что код делает:

  1. Процедура FormPaint вызывается при рисовании формы.
  2. Она устанавливает клиентскую ширину и высоту формы в 200x100 пикселей соответственно.
  3. Она случайно изменяет значение функции Randomize.
  4. Она проходит по каждому пикселю на форме с помощью двух вложенных циклов for, где x варьируется от 0 до 199 и y - от 0 до 99.
  5. Для каждого пикселя она проверяет, равен ли случайное число между 1 и 3 1. Если это так, она устанавливает цвет пикселя в зеленый (clGreen); иначе - в лимонный (clLime).
  6. Она создает объект TBitMap с шириной 200 и высотой 100 пикселей.
  7. Статус with задает различные свойства канваса битмапа:
    • Цвет кисти: зеленый (clGreen)
    • Заполнение прямоугольника: заполняет всю поверхность кистью
    • Шрифт: Arial, размер 50, серый (clGray), жирный (fsBold)
    • Вывод текста: пишет текст "Text" в центре поверхности
  8. Она устанавливает режим копирования канваса формы в cmSrcPaint, что позволяет использовать битмап как кисть.
  9. Она копирует поверхность канваса битмапа на поверхность канваса формы с помощью метода CopyRect.
  10. Наконец, она уничтожает битмап.

Чтобы сделать текст полупрозрачным, вы можете изменить канал альфа текстового цвета или использовать эффект прозрачности на канвасе. Однако код не устанавливает альфа-значение явно. Вам может потребоваться добавить фактор прозрачности в свойства кисти или шрифта.

Вот альтернативное решение, использующее полупрозрачную кисть:

procedure TForm1.FormPaint(Sender: TObject);
var
  x, y: integer;
begin
   // ... (остальная часть кода остается той же)

  with bm.Canvas do
  begin
    Brush.Opacity := 0.5; // Установка альфа-канала в 50%
    Font.Color := clGray; // Оставьте цвет шрифта серым
    TextOut((bm.Width - TextWidth('Text')) div 2,
      (bm.Height - TextHeight('Text')) div 2, 'Text');
  end;
   // ... (остальная часть кода остается той же)

В этом примере я установил.opacity кисти в 0.5 с помощью свойства Opacity. Это сделает текст полупрозрачным. Вы можете изменить значение для достижения желаемого уровня прозрачности.

В статье описывается процедура TForm1.FormPaint для вывода полупрозрачной текстовой строки на форме Delphi, используя битмап и методы Canvas.


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

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




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


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


реклама


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

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 12:28:15/0.0055949687957764/1