![]() |
![]() ![]() ![]() ![]() |
|
Перевод строки HTML кода в цветDelphi , Графика и Игры , Цвета и Палитра
Автор: Fenik
{ **** UBPFD *********** by delphibase.endimus.com ****
>>
Зависимости: Graphics
Автор: Fenik, chook_nu@uraltc.ru, Новоуральск
Copyright: Автор Федоровских Николай
Дата: 26 октября 2002 г.
***************************************************** }
function HTMLToColor(const s: string; var Color: TColor): Boolean;
{Функция переводит строку HTML кода в цвет.
Если результат успешен, то возвращает True
и записывает цвет в переменную Color,
иначе возвращает False.
Строка должна быть например такой: #2A09F4
в диапазоне #000000 - #FFFFFF}
function No16: Boolean;
{Функция проверяет относятся ли символы с 2 по 7
к шестнадцатеричной системе счисления.
Если относятся, то результат - False,
иначе - True}
var
i: Integer;
begin
Result := False;
for i := 2 to 7 do
if not ((s[i] in ['0'..'9']) or (s[i] in ['A'..'F'])) then
begin
Break;
Result := True;
end;
end;
function GetNum(pos: Byte): Byte;
{перевод строки с шетнадцатеричным двухзначным
числом в десятичное число}
var
ms: string;
E: Integer;
begin
{выделяем фрагмент строки длиной в 2 символа
начиная с заданной позиции и переводим его в число}
ms := '$' + Copy(s, pos, 2);
Val(ms, Result, E);
end;
begin
Result := False;
{Функция потерпит неудачу,
если строка имеет неверный формат.}
if (Length(s) <> 7) then
Exit
else if (s[1] <> '#') then
Exit
else if No16 then
Exit;
Color := GetNum(6) shl 16 {синий}
or GetNum(4) shl 8 {зелёный}
or GetNum(2); {красный}
{или Color := RGB(GetNum(2), GetNum(4), GetNum(6));}
Result := True;
end;
Пример использования:
if HTMLToColor(HTMLEdit.Text, C) then
begin
Panel1.Color := C;
ChangeColor;
end;
HTMLToColor('#808080', C) {C := clGray}
Перевод контента на русский язык: Код - функция Delphi, которая конвертирует строку HTML-цвета в значение TColor, которое можно использовать в приложении графического пользовательского интерфейса (GUI). Функция принимает строку как входной параметр и возвращает булевое значение, указывающее, была ли конвертация успешна. Распаковка кода:
Код включает пример использования функции Альтернативное решение: Вместо использования вложенных функций можно использовать одиночную функцию с множественными возвращаемыми значениями (используя переменную Этот код более компактен и легче для чтения, чем оригинальная версия. Однако он все еще выполняет те же операции, что и предыдущая версия. Функция HTMLToColor позволяет конвертировать строку HTML-кода в цвет, при этом проверяя формат строки и переводя шестнадцатеричные символы в десятичное число. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш :: Главная :: Цвета и Палитра ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 | ||||