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

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

TColor -> RGB [D7, WinXP]


iNevil ©   (2006-12-09 11:51:00) 

Как конвертировать TColor в RGB ?
Заранее спасибо.


Stexen   (2006-12-18 17:01:00) [1]


> ors_archangel ©   (18.12.06 07:14) [6]

Интересно,
Хм, и хранят в младшем байте...


ors_archangel   (2006-12-18 07:14:00) [2]


> Иначе никак не определить индекс это или нет

function ColorToRGB(Color: TColor): Longint;
begin
 if Color < 0 then
   Result := GetSysColor(Color and $000000FF) else
   Result := Color;
end


Stexen   (2006-12-17 01:38:00) [3]


> может быть ещё индексом стандартного цвета

Судя по всему, цвет занимает три байта, соответсвенно индес наверняка хранится в 4ом байте(так как хранят integer'ом). Иначе никак не определить индекс это или нет. Так что все равно можно избежать этих ф-ий, особенно учитывая, что это из библиотек дельфи, и зная то, как дельфи-библиотеки реализовывают некоторые моменты, ну может и не прав...


ors_archangel   (2006-12-16 08:43:00) [4]


> что там конвертировать???

TColor может быть ещё индексом стандартного цвета Windows (например, COLOR_BTNFACE), тогда от требует перевода, если точно знаешь, что твой clr: TColor уже точно не индекс стандартного цвета (вообще, они называются системными цветами), то можешь смело писать rgb := clr, но иначе лучше всё же rgb := ColorToRGB(clr)


Stexen   (2006-12-16 05:10:00) [5]

ХМ, всю жизнь думал что tcolor это число состоящее из трех байт по одному на красную зеленую и синию компоненту...и что там конвертировать???может ошибаюсь...


iNevil   (2006-12-09 12:19:00) [6]

ха! я так и знал что есть такая фича! :)
Спасибо)


MBo   (2006-12-09 12:13:00) [7]

ColorToRGB  ;)


Наверх

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