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

Как изменить фоновый цвет текста

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

Как изменить фоновый цвет текста

Автор: Олег Кулабухов


procedure TForm1.Button1Click(Sender: TObject);
var
  OldTextColor: TColorRef;
  OldBkColor: TColorRef;
  OldBkMode: Integer;
begin
  OldTextColor := SetTextColor(Form1.Canvas.Handle, clYellow);
  OldBkColor := SetBkColor(Form1.Canvas.Handle, clGreen);
  OldBkMode := SetBkMode(Form1.Canvas.Handle, OPAQUE);
  TextOut(Form1.Canvas.Handle, 20, 20, 'Delphi World - лучше всех! ;-)', 27);
  SetBkMode(Form1.Canvas.Handle, OldBkMode);
  SetBkColor(Form1.Canvas.Handle, OldBkColor);
  SetTextColor(Form1.Canvas.Handle, OldTextColor);
end;

Here is the translation of the provided content into Russian:

Классический код Delphi! Процедура, предоставленная ниже, устанавливает цвет переднего плана (цвет текста) в желтый, фон в зеленый и режим текста в прозрачный (т.е., перезаписывает любые существующие тексты). Затем она печатает строку "Delphi World - лучше всех! ;-)" координаты (20, 20) на форме.

Чтобы изменить цвет фона текста (не формы), вы можете использовать функцию SetBkColor. Однако, эта функция изменяет фон устройства контекста (DC), а не цвет текста. Для достижения желаемого эффекта вам нужно нарисовать прямоугольник с желаемым цветом за текстом.

Вот обновленная версия процедуры, которая устанавливает цвет текста и фон:

procedure TForm1.Button1Click(Sender: TObject);
var
  OldTextColor: TColorRef;
  OldBkColor: TColorRef;
  OldBkMode: Integer;
begin
   // Сохраняем старые цвета и режимы
  OldTextColor  := SetTextColor(Form1.Canvas.Handle, clYellow);
  OldBkColor  := SetBkColor(Form1.Canvas.Handle, clWhite);  // Белый фон

   // Нарисуем белый прямоугольник как фон для текста (опционально)
  Form1.Canvas.Rectangle(20, 20, 47, 47);

   // Печатаем строку
  TextOut(Form1.Canvas.Handle, 20, 20, 'Delphi World   - лучше всех!   ;-)', 27);

   // Восстанавливаем старые цвета и режимы
  SetTextColor(Form1.Canvas.Handle, OldTextColor);
  SetBkColor(Form1.Canvas.Handle, OldBkColor);
end;

В обновленном коде мы устанавливаем фон в белый цвет с помощью SetBkColor перед печатанием текста. Мы также рисуем прямоугольник с тем же размером, как и текст, в тех же координатах (опционально), который служит фоном для текста.

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

В статье описывается процедура изменения фонового цвета текста в Delphi с помощью функции SetTextColor и других соответствующих методов.


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


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

заголовок

e-mail

Ваше имя

Сообщение

Введите код




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



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


реклама



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

Время компиляции файла: 2024-05-19 17:53:24
2024-05-20 00:18:05/0.0039529800415039/2