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

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

Как получить R,G,B из clBtnFace? [D6, WinXP]


ancara ©   (2004-06-11 10:49:00) 

Доброго времени суток, господа! Поскажите пожалуйста как из clBtnFace и ему подобных вытащить R, G и B значения. Посмотрел в Graphics.pas, там
COLOR_BTNFACE = 15;
  и
clBtnFace = (COLOR_BTNFACE or $80000000);
 Я так понимаю, 15 это индекс в сист. палитре, да? А как мне из этой палитры RGB получить?


Anatoly Podgoretsky   (2004-06-11 12:06:00) [1]

Не только, кроме этого первые три байта могут сожержать далеко не RGB


YurikGL   (2004-06-11 11:41:00) [2]


> Anatoly Podgoretsky ©   (11.06.04 11:39) [5]

На один байт?


Anatoly Podgoretsky   (2004-06-11 11:39:00) [3]

ancara ©   (11.06.04 11:15) [4]
Да в этом, TColor это не RGB, а гораддо комплекснее.


ancara   (2004-06-11 11:15:00) [4]


> Gero ©   (11.06.04 11:04) [3]
> Color := ColorToRGB(clBtnFace);


Так вот оно в чем дело! Все, арбайтет! Спасибо!


Gero   (2004-06-11 11:04:00) [5]

Color := ColorToRGB(clBtnFace);
R := GetRValue;
G := GetGValue;
B := GetBValue;

Считайте сами.


ancara   (2004-06-11 11:02:00) [6]

> YurikGL ©   (11.06.04 10:55) [1]
> GetRValue


Windows.pas:

function GetRValue(rgb: DWORD): Byte;
begin
 Result := Byte(rgb);
end;


В качестве параметра rgb мы передаем clBtnFace, а он равен $8000000F, что получаем на выходе?


YurikGL   (2004-06-11 10:55:00) [7]

GetRValue
GetBValue
GerGValue


Наверх

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