Я хочу преобразовать HTML-шестнадцатеричный цвет в TColor
в Inno Setup Pascal Script.Преобразование HTML-цвета в цвет в TColor в Inno Setup Pascal Script
Я попытался обратить вспять функцию ColorToWebColorStr
из Convert Inno Setup Pascal Script TColor to HTML hex colour, но мне может понадобиться функция, как RGBToColor
, чтобы получить результат как TColor
.
ПРИМЕР
Преобразование #497AC2
HTML Hex Цвет должен быть возвращен как TColor
$C27A49
. Ввод должен представлять собой представление строки цвета HTML, а вывод должен быть TColor
.
ОБНОВЛЕНИЕ
Когда я использую следующую функцию от VCL Windows
блока в программе установки Inno, TForm.Color
показывает, как красный.
const
COLORREF: TColor;
function RGB(R, G, B: Byte): COLORREF;
begin
Result := (R or (G shl 8) or (B shl 16));
end;
DataChecker.Color := RGB(73, 122, 194);
Цвет, который я ожидал в TForm.Color
является:
<html>
<body bgcolor="#497AC2">
<h2>This Background Colour is the Colour I expected instead of Red.</h2>
</body>
</html>
Кроме того, я также хотел бы знать, почему красный цвет возвращается здесь (форма показывает красный) вместо ожидаемого полу светло-голубого цвета .........
Я хочу использовать преобразование как:
#define BackgroundColour "#497AC2"
procedure InitializeDataChecker;
...
begin
...
repeat
ShellExec('Open', ExpandConstant('{pf64}\ImageMagick-7.0.2-Q16\Convert.exe'),
ExpandConstant('-size ' + ScreenResolution + ' xc:' '{#BackgroundColour}' + ' -quality 100% "{tmp}\'+IntToStr(ImageNumber)+'-X.jpg"'), '', SW_HIDEX, ewWaitUntilTerminated, ErrorCode);
...
until FileExists(ExpandConstant('{tmp}\'+IntToStr(ImageNumber)+'.jpg')) = False;
...
end;
...
DataChecker := TForm.Create(nil);
{ ---HERE IT SHOULD BE RETURNED AS `$C27A49`--- }
DataChecker.Color := NewFunction({#BackgroundColour})
Спасибо заранее.
Для чего бы вы использовали такую функцию? –
Что такое 'DataChecker'? –
Это «TForm», который обрабатывает некоторые мои изображения, которые будут отображаться во время установки. См. Мой обновленный вопрос ........... – Blueeyes789