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

Вниз

Как изменить цвет кнопок, меню, скроллинга?   Найти похожие ветки 

 
doroshka   (2002-07-12 10:34) [0]

Господа, подскажите пожалуйста, как изменить цвет кнопок, меню, скроллинга, закладок PageControl-а и т.п. В общем тех контролов, у которых нет явного свойста Color и/или ParentColor и которые используют цвет, который для них установлен в системе.
Спасибо.


 
BAY ©   (2002-07-12 10:38) [1]

загляни в Properties, помоему там все это есть


 
Гас   (2002-07-12 15:14) [2]

В какие Properties? Там такого нету и мне кажется, что вопрос действительно интересный..


 
Eugene Lachinov ©   (2002-07-12 15:23) [3]

Легких путей нет, надо отрабатывать отрисовку самим или брать компоненты где такая возможность есть.


 
Skier ©   (2002-07-12 15:26) [4]

Про кнопки здесь :
http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1025854328&n=0


 
Гас   (2002-07-12 15:57) [5]

Мда.. А в Borland не могли такого сделать?.. :(


 
Eugene Lachinov ©   (2002-07-12 16:00) [6]

В Borland не жадные, дают и другим на хлеб заработать :)


 
BAY ©   (2002-07-12 19:47) [7]

>> В какие Properties? Там такого нету и мне кажется, что вопрос действительно интересный..

Извиняюсь. Действительно нет :(


 
doroshka   (2002-07-13 10:40) [8]

Спасибо, за участие :)
Я вот что подумал... Все эти компоненты (почти все, не суть важно) имеют цвет clBtnFace, может можно как-то при запуске приложения переопределить эту константу? Это решит все мои проблемы.


 
Новенький в Делфи   (2002-07-13 11:16) [9]

Все эти компоненты (почти все, не суть важно) имеют цвет clBtnFace
0ни имеют цвет, который назначен в твоих установках (хотя действительно это чаще всего clSilver насколько я помню).

Я скролл бары ресую сам.


 
Anatoly Podgoretsky ©   (2002-07-13 11:35) [10]

Если речь про системные то это прерогатива пользователя и не дело лезть туда грязными руками, хочется молочка, то не надо использовать системные, а использовать пользовательские компоненты, их в Инете уйма.


 
doroshka   (2002-07-13 20:05) [11]

=> Anatoly Podgoretsky

Извините, но я не спрашиваю, стоит мне туда лезть или не стоит, вероятно стоит, иначе бы не спрашивал ;). Я хочу написать полностью настраиваемое приложение, которое пользователь сможет раскрасить как захочет, не трогая при этом системные установки.

Использовать сторонние компоненты... Скорее всего так и будет, но ведь эти компоненты кто-то пишет, значит сделать это (изменить цвета) - возможно. Я надеялся что есть легкий способ. Вот например поменять цвет ProgressBar-a оказалось очень просто

SendMessage(ProgressBar1.Handle, WM_USER+9, 0, clBlack);

для других компонент - пока не нашел, возможно и не найду.

Раз уже столкнулся с проблемой, так хочется решить ее! :))

Так как насчет подмены стандартных цветов типа clBtnFace, clSilver своими значениями на этапе, скажем, загрузки приложения? Есть идеи? Или я тут в корне не прав и этого сделать невозможно?
Спасибо.


 
doroshka   (2002-07-13 20:13) [12]

Извиняюсь за оффтопик, но вот интересная ссылка по теме ;)

http://www.delphikingdom.com/asp/answer.asp?IDAnswer=9852


 
Anatoly Podgoretsky ©   (2002-07-13 20:34) [13]

doroshka (13.07.02 20:05)
Так я тебе и советую этот путь с посторонними компонентами, но у тебя странное представление об пользователе, особенно об пользователе WinXP с его темами.
Но это все таки твое дело, решать как твое приложение должно выглядеть, тут ты прав.


 
Fissher ©   (2002-07-13 22:27) [14]

Мне это тоже до ж..ы нужно! Раз кто-то пишет компоненты - значит есть способ, но как ??????????????


 
Юрий Зотов ©   (2002-07-13 23:03) [15]

Эти цвета - системные установки юзера. Следовательно, Вы должны либо менять эти установки (что отразится на ВСЕХ программах и вряд кто-то Вам скажет за это спасибо - скорее, Вашей программой просто не будут пользоваться), либо рисовать свои контролы ручками.

Первое делается вызовом SetSysColors (но не советую), а второе - обработкой WM_ERASEBKGND, WM_NCPAINT и WM_PAINT (но придется капитально попотеть).

Некоторые контролы из ComCtl32 поддерживают режим CustomDraw, когда параметры перерисовки запрашиваются посылкой сообщений WM_NOTIFY. Это попроще, чем рисовать самому, но тоже не сахар (детали см. в MSDN, больше, наверное, негде). Наконец, некоторые контролы (и соответствующие им компоненты Delphi) поддерживают свойство OwnerDraw и тоже позволяют настраивать перерисовку программно, вплоть до полного рисования самому (детали см. в справке Delphi).

Вот и все, ничего другого нет. Готовые компоненты именно так и работают.



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

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

Наверх




Память: 0.5 MB
Время: 0.009 c
14-81470
BillyJeans
2002-06-28 15:48
2002.07.25
Help!!! Уехали картинки на панели инструментов...


3-81135
Aleksandr
2002-07-02 15:53
2002.07.25
Аааа! Как заставить сессии не спрашивать логин и пароль?!


8-81374
Dimitriy
2002-03-16 17:09
2002.07.25
Курсор


1-81292
EugenCFG
2002-07-11 21:16
2002.07.25
Изменив размер кнопоки, все остальные кнопки стали не стандар...


1-81328
perseptron
2002-07-12 18:04
2002.07.25
Срочно!