Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.006 c
14-81459
Pro
2002-06-28 09:50
2002.07.25
редактор hlp


14-81462
koks
2002-06-27 10:59
2002.07.25
QReport vs FreeReport


1-81335
Crypto
2002-07-12 21:42
2002.07.25
как передать через ShellExecute много(!) E-mail адресов?


1-81212
nwc_eminem
2002-07-11 19:18
2002.07.25
Копирование файла


8-81390
petyun
2002-03-15 08:59
2002.07.25
две звуковухи





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский