![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Перевод строки 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 |