Форум: "Основная";
Текущий архив: 2002.07.25;
Скачать: [xml.tar.bz2];
ВнизКак изменить цвет кнопок, меню, скроллинга? Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.007 c