Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Можно ли изменить значения цвета во время работы приложения.


Prohodil Mimo ©   (2007-10-19 17:46:00) 

У формы выставлен Color = clBtnFace.
Если я в системе изменю цветовую гамму, то и окно изменит цвет.
А могу ли я внутри программы где-то указать, что все окна моего приложения должны быть например синие и во всей программе все окна стали синие? Или красные, не важно, в зависимости от того, что выберет пользователь.
Какую переменную при этом надо изменить и каким образом?
Не хочется перебирать все окна и элементы, проверяя кто какай цвет принимает в в зависимости от этого менять им цвета, да это и не правильно будет.


Prohodil Mimo   (2007-10-23 21:22:00) [1]

Amoeba ©   (23.10.07 18:37) [14]
да это я уже понял, порывшись в исходниках VCL.

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


Amoeba   (2007-10-23 18:37:00) [2]

Вместо clBtnFace сразу задай форме форме конкретныйцвет.  реальное значение clBtnFace (а также clWindow, etc.) просто определяется цветовой схемой и не является константой.


Prohodil Mimo   (2007-10-23 14:16:00) [3]

Ну уж нет.
Я лучше наследников напишу с дополнительным свойством цвета и по нему буду определять.

К тому же у меня и так нет стандартных компенент, все наследники.
Так навверное и сделаю.


rts111   (2007-10-23 12:45:00) [4]

Может быть так:
1) Программно поменяй значения системных цветов в Registry.
2) Пошли сообщение всем окнам программы что системные цвета изменились.
3) И снова востанави в Registry значение системных цветов по умолчанию.


Prohodil Mimo   (2007-10-23 12:08:00) [5]

rts111 ©   (23.10.07 7:25) [10]
if MyElement.Colr=ClBtnFace then MyElement.Color:=NewColor;



> Prohodil Mimo ©   (21.10.07 15:30) [9]
Во второй раз уже не получится, т.к. все цвета уже переопределены.


rts111   (2007-10-23 07:25:00) [6]


> Prohodil Mimo ©   (21.10.07 15:30) [9]
...


if MyElement.Colr=ClBtnFace then MyElement.Color:=NewColor;


Prohodil Mimo   (2007-10-21 15:30:00) [7]

Речь идёт не только об окнах, но так же и обо всех элементах.
Как пробежаться по всем формам приложения и по всем их элементам - я знаю. Как изменить цвет - тоже.
Проблема в другом:
Если у меня на форме у некоторых TEdit Color = ClBtnFace у некоторых TEdit Color = ClWindow у третьих ещё что-то. В первый раз я могу пройтись по элементам, определить каого цвета они должны быть и выставить нужный. Во второй раз уже не получится, т.к. все цвета уже переопределены.
Я думал, что может можно изменить константы цветов внутри приложения, например что ClWindow = синий, а ClBtnFace = розовый, а у самих элементов как было в цвете установлено, что это ClBtnFace или ClWindow так и осталось бы.

А так, как сейчас - пробегаешь по формам и элементам и определяешь, если это форма, даёшь ей один цвет, если эдит - другой, кнопкам - третий и т.д. Причём все элементы одного типа имеют одинаковый цвет.


Antoxa2005   (2007-10-21 13:17:00) [8]

Пробегись по приложению, выяви TForm, и меняй цвет (Cjkjh). Очень быстро и просто!!! Я так сохраняю и восстанавливаю размеры и позиции форм...


Antoxa2005   (2007-10-21 13:17:00) [9]

Не (Cjkjh), а Color...


Игорь   (2007-10-20 10:03:00) [10]


> Prohodil Mimo


Тебе же сказали написать свой желаемый цвет, например

Color:= RGB(255, 123, 193);


Prohodil Mimo   (2007-10-19 19:18:00) [11]

Плохиш ©   (19.10.07 19:01) [3]
не умеешь читать - не лезь.
обосрать каждый может.

Правильный_Вася, а тебе спасибо.


Правильный_Вася   (2007-10-19 19:11:00) [12]


> Плохиш ©   (19.10.07 19:01) [3]

все равно перебор всех форм и компонентов


Плохиш   (2007-10-19 19:01:00) [13]


> Prohodil Mimo ©   (19.10.07 17:46)  
> У формы выставлен Color = clBtnFace

Вот в этом месте и надо написать свой желаемый цвет, не уже ли логика полностью отсутствует вместе с желанием чего-то прочитать?


Prohodil Mimo   (2007-10-19 18:25:00) [14]

других вариантов нет?


Правильный_Вася   (2007-10-19 17:53:00) [15]

скин повесь


Наверх

Титульная страница Поиск, карта сайта Написать письмо