Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Перевод TColor в HEX [D6, WinXP]


Netcoder ©   (2002-12-13 08:12:00) 

Мастера, подскажите пожалуйста, как перевести Color в HEX. Короче, как в HTML редакторах.


Netcoder   (2002-12-14 10:23:00) [1]

Функция zavdima вроде сработала. Спасибо!


Гарик   (2002-12-13 13:16:00) [2]

Да, действительно, надо переворачивать "делфийский" цвет, чтобы получить такой же в Html. Т.е. в Delphi BGR.
из graphics.pas:

clRed = TColor($0000FF);
clBlue = TColor($FF0000);


zavdim   (2002-12-13 12:48:00) [3]

вот и я говорю. поэтому и разница с HTML.
Delphi и HTML по разному цвета нумеруют.
RGB - BGR.


Anatoly Podgoretsky   (2002-12-13 12:34:00) [4]

Превращение происходит в текстовую строку по правилам работы с числами, справа младшии разряды, никакой разницы по сравнению с десятичными, только что по модулю 16


zavdim   (2002-12-13 12:15:00) [5]

тоесть BGR.


zavdim   (2002-12-13 12:12:00) [6]

2 Гарик
я и говорю, что без IntToHex не убежишь. И я не пробовал, но в вашем случае точно RGB будет, а не BRG ? ....
Так - попробовал - не HTML формат, а как в Дельфи BRG.

2 Anatoly Podgoretsky ©
А можно предпоследнее повторить и чуть медленнее :-))


Anatoly Podgoretsky   (2002-12-13 11:10:00) [7]

У него там понапутано, и HEX и HTML, они ек пвыеф дпун другу

1. #BBGGRR
2. #RRGGBB


Гарик   (2002-12-13 11:02:00) [8]

2zavdim

> такую например строку мы не получим #ffA076.

почему
Form1.Color := $ffA076;
ShowMessage(IntToHex(ColorToRGB(Form1.Color),6))
получаем именно такую строку или речь не об этом?


zavdim   (2002-12-13 10:21:00) [9]

2 Гарик
function ColorToRGB(Color: TColor): Longint;
в HEX - это еще не перешло, и такую например строку мы не получим #ffA076.
Но и мне можно добавить следующее:
a := a and $1000000;


Netcoder   (2002-12-13 09:48:00) [10]

Спасибо


Гарик   (2002-12-13 09:35:00) [11]

ColorToRGB
получаешь цвет в HEX: RRGGBB
это имелось ввиду?


zavdim   (2002-12-13 09:31:00) [12]

function GetHexFrom(a : TColor) : string;
var r,g,b : integer;
begin
b := a div $10000;
g := (a mod $10000) div $100;
r := a mod $100;
Result := intToHex(r,2)+intToHex(g,2)+intToHex(b,2)
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо