Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.06.27;
Скачать: CL | DM;

Вниз

Как получить R,G,B из clBtnFace?   Найти похожие ветки 

 
ancara ©   (2004-06-11 10:49) [0]

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


 
YurikGL ©   (2004-06-11 10:55) [1]

GetRValue
GetBValue
GerGValue


 
ancara ©   (2004-06-11 11:02) [2]

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


Windows.pas:

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


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


 
Gero ©   (2004-06-11 11:04) [3]

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

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


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


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


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


 
Anatoly Podgoretsky ©   (2004-06-11 11:39) [5]

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


 
YurikGL ©   (2004-06-11 11:41) [6]


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

На один байт?


 
Anatoly Podgoretsky ©   (2004-06-11 12:06) [7]

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



Страницы: 1 вся ветка

Текущий архив: 2004.06.27;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.042 c
14-1086891993
Knight
2004-06-10 22:26
2004.06.27
Гы... :)


14-1086801955
Феликс
2004-06-09 21:25
2004.06.27
Если сократить всё человечество до деревни в 100 жителей,


1-1087140161
lena19
2004-06-13 19:22
2004.06.27
проблема с указателями или access violation по адресу xxxxxxxxxxx


1-1087056784
juiceman
2004-06-12 20:13
2004.06.27
try


6-1082355963
Piter
2004-04-19 10:26
2004.06.27
Статья про сокеты