Вниз
Скачать: CL | DM;

Как вычислять системные цвета?   Найти похожие ветки 

 
Oxy2   (2001-12-28 14:25) [0]

Привет, всем!

У меня такой вопрс. Вот, например, при смене цветов в настройках екрана в Win она автоматически вычисляет цвета для отображения 3Д-объектов. Такие как, например, clBtnFace, clBtnHighlight, сl3DDkShadow, clBtnShadow (это все делфийские аналоги системных цветов). Вопрос состоит в том как мне самому вычислять их. Я пробовал выяснить систему вычислений, но ничего не получилось. Наверное она довольно сложная и простыми методами анализа ее не возьмешь. Может кто знает как это сделать или есть какая-то специфическая функция API. Помогите, мастера!


 
Виктор Щербаков ©   (2001-12-28 14:40) [1]

Значения этих цветов лежат в реестре (название ключа не помню).
Так что вычислять ничего не надо. Можно оттуда взять, а можно API функцией GetSysColor воспользоваться


 
Oxy2   (2001-12-28 15:20) [2]

Но мне надо именно вычислять.
Допустим я хочу нарисовать кнопку не того цвета, что в винде установлен. Как мне узнать цвета тени и подсветки для кнопки?


 
Voron ©   (2001-12-29 08:08) [3]

А помоему они вообще не вычисляются, а просто прописаны, не зря же они в реестр положены.


 
Dimka Maslov ©   (2001-12-29 10:43) [4]

function GetColor(Color: Integer): Integer;
asm
cmp eax, 0
jge @@10
and eax, 000000FFH
push eax
call GetSysColor
@@10:
end;


 
Виктор Щербаков ©   (2001-12-29 11:28) [5]

to Voron
Некоторые системные цвета (сl3DDkShadow, clBtnShadow)действительно вычисляются при настройке пользователем цветовой схемы. Это позволяет цветовой схеме выглядеть более логично. Oxy2 как раз и хочет узнать алгоритм этих вычислений.

to Oxy2
Единственное, что я могу предложить - поизменяй цветовую схему и посмотри как будут изменяться значения вычисляемых системных цветов в реестре (HKEY_CURRENT_USER\Control Panel\Colors). Думаю, что алгоритм не очень сложный. Установи цвет рельефных объектов в (255, 255, 255) и посмотри чему равнцы цвета теней.
Ну и т.д...


 
Oxy2   (2002-01-03 23:26) [6]

Всех с Новым Годом и Рождеством!

2Виктор Щербаков
Наконец то хоть кто то понял, что мне надо. А то, например, Dimka Maslov вообще на ASM перешел. :-)) Правда совет его вовсе не в тему. Вопрос надо было сначала прочитать.

>>Единственное, что я могу предложить - поизменяй цветовую схему >>и посмотри как будут изменяться значения вычисляемых системных >>цветов в реестре (HKEY_CURRENT_USER\Control Panel\Colors). >>Думаю, что алгоритм не очень сложный. Установи цвет рельефных >>объектов в (255, 255, 255) и посмотри чему равнцы цвета теней.
Я это уже пробовал - не получается. :-((
Алгоритм довольно сложный. Я об этом в вопросе уже писал.

Посему тема еще НЕ закрыта. Может есть еще предложения. Буду очень благодарен.



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.008 c
3-9073
DimaIv
2002-02-04 21:37
2002.03.04
Реально ли переделать базу сделанную для использрвания


1-9112
ДмитрийВ
2002-02-15 08:18
2002.03.04
Динамический массив


1-9148
ЕвгенийА
2002-02-13 23:37
2002.03.04
Видео изображение меняет размеры в зависимости от размеров chart


1-9218
avk
2002-02-15 11:33
2002.03.04
ListBox переход на следующую строку...


4-9331
NetBreaker666
2001-12-25 16:16
2002.03.04
Люди, понимаю, что мне пить надо меньше, на как получить список процессов.




   Наверх