При переходе с VCL на FireMonkey для разработки под Android, разработчики сталкиваются с необходимостью адаптации кода, который ранее работал в десктопных приложениях. Одной из таких задач является работа с цветами и текстом в графических элементах.
Рандомизация цветов
В VCL для генерации случайных цветов использовалась функция RGB из модуля Windows. В FireMonkey для работы с цветами используется тип TAlphaColor, который позволяет задать прозрачность. Для работы с цветом в FireMonkey необходимо использовать структуру TAlphaColorRec из модуля System.UITypes.
var C: TAlphaColorRec;
begin
C.A := 255; // Прозрачность, если она не нужна
C.R := Random(256);
C.G := Random(256);
C.B := Random(256);
// Применение цвета к элементу
Label1.Font.Color := C.Color;
// Необходимо явно указать, что цвет шрифта изменился
Label1.StyledSettings := Label1.StyledSettings - [TStyledSetting.FontColor];
end;
Также для создания цвета можно использовать функцию MakeColor из модуля System.UIConsts, которая принимает значения красного, зелёного, синего и прозрачности, возвращая объект TAlphaColor:
Для вывода текста на битмап в VCL использовалась функция TextOut. В FireMonkey для отображения текста на элементе управления или в битмапе можно использовать различные подходы, в зависимости от контекста.
Пример кода
uses
System.UIConsts;
procedure TForm1.Button1Click(Sender: TObject);
var
C: TAlphaColor;
begin
C := MakeColor(Random(256), Random(256), Random(256));
Label1.Font.Color := C;
Label1.Text := 'Пример текста';
Label1.StyledSettings := Label1.StyledSettings - [TStyledSetting.FontColor];
end;
Заключение
Переход с VCL на FireMonkey для Android требует понимания особенностей работы с графическими элементами, цветом и текстом. Использование TAlphaColorRec и функции MakeColor позволяет легко рандомизировать цвета в соответствии с требованиями FireMonkey. Необходимо также помнить об особенностях стилизации элементов управления и о том, что некоторые настройки нужно устанавливать явно.
Этот пример демонстрирует базовый принцип работы с цветами и текстом в FireMonkey, который можно расширять и адаптировать под конкретные задачи разработки.
При переходе с VCL на FireMonkey для разработки под Android, разработчикам необходимо адаптировать код, в том числе и работу с цветами и текстом, используя новые возможности и типы данных, предоставляемые FireMonkey, такие как TAlphaColor и TAlphaColorRe
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS