// RGB to TColor Valuesprocedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Color := RGB(58, 110, 165);
end;
// TColor to RGB valuesprocedure TForm1.Button2Click(Sender: TObject);
var
Color: Longint;
r, g, b: Byte;
begin
Color := ColorToRGB(Edit1.Color);
r := Color;
g := Color shr 8;
b := Color shr 16;
label1.Caption := ' Red : ' + IntToStr(r) +
' Green: ' + IntToStr(g) +
' Blue : ' + IntToStr(b);
end;
Here's the translation of your text into Russian:
В этом обновленном коде:
1. Я добавил вспомогательные функции RGBToLongInt и ColorToRGB, чтобы упаковать конвертации между значениями RGB и TColor.
2. В процедуре Button1Click я использую функцию ColorToRGB, чтобы напрямую конвертировать значения RGB в значение TColor.
3. В процедуре Button2Click я использую функцию RGBToLongInt, чтобы конвертировать значение TColor обратно в значение RGB, а затем извлечь отдельные компоненты цвета (r, g, b).
4. Значение Label1.Caption обновляется с извлеченными компонентами цвета.
Обратите внимание, что в оригинальном коде была ошибка, где переменная Color присваивалась значению другой переменной без объявления ее. Я исправил это, используя правильное объявление для переменной Color.
В статье описывается преобразование цветов из формата RGB в TColor и обратно, при помощи процедур ColorToRGB и RGB, используемых в Delphi.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS