Как преобразовать строку в значение TColor?

Я создаю форму Delphi и хочу присвоить ей цвет фона во время выполнения. Этот код:

Form1.Color := clSkyBlue; 

работает хорошо. Моя проблема в том, что я сохранил имя цвета в таблице в виде строки. Итак, когда я получаю имя цвета из таблицы и назначаю его Form1.Color, приведенный выше оператор становится:

var
  ColorName: string;
....
Form1.Color := ColorName;

и это приводит к ошибке времени компиляции.

Как преобразовать строку в значение TColor?

Ответ 1

Вы можете использовать следующие функции преобразования (оба работают с цветовыми константами):

  • StringToColor использовать функцию для преобразования строкового представления цвета в TColor значение
  • ColorToString использовать, когда вам нужно перевести TColor для строкового представления

В вашем случае вам нужно использовать функцию StringToColor:

Form1.Color := StringToColor('clSkyBlue');