Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.03.04;
Скачать: 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 вся ветка

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

Наверх




Память: 0.48 MB
Время: 0.01 c
1-9232
forrest1
2002-02-15 17:26
2002.03.04
Как выделить одну строку в DBGrid для SelectedRows


7-9320
AlexKniga
2001-11-27 18:10
2002.03.04
Не в тему. Про аудио системы.


1-9243
Октябрь
2002-02-15 20:47
2002.03.04
Extended и String?????


1-9222
Lotus
2002-02-13 10:33
2002.03.04
всплывающий список


3-9078
Jhonny
2002-02-07 07:07
2002.03.04
Максимальное значение кода в базе данных