![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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 ;)