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

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

Связь переменной со свойством компанента и наоборот [D6, WinXP]


Страницы:   1 2

AntonGF ©   (2006-05-26 10:29:00) 

Есть, например, переменая типа boolean (B) (какой то флаг внутри программы) и checkbox (C) на форме. Теперь собственно вопрос. Как сделать чтобы при изменении значения B изменилось значение С.Checked и наоборот? Не используя C.OnCick и т.п.
Область применения: Вы ведете проект. используете различные настройки и т.п. которые содержатся в переменных. Возникает необходимость вывести значение переменной на форму для внешнего контроля. Размещаем соответствующий данным компонент и связываем его с переменной, значение которой необходимо отражать. И всё! при изменении значения переменной свойство компонента меняется автоматически и наоборот. Заманчиво? а если эти настройки хранятся гденить и их надо подгружать и сохранять, а если их 500 штук? Мы выигрываем тьму времени на контроле отображения значений. Остается только задать какимто обрзом эту связь! )) есть идеи?

Заранее благодарен, Антон.


AntonGF   (2006-05-26 13:11:00) [21]

давайте попробуем расписать что необходимо делать в обычном (как по книжке)(1) и в предлагаемом мной (2) случае
Действие / (1) надо/не надо / (2) надо/не надо
объявление переменных /+/+
присвоение начальных значений /+/+
заполнение соответствующих свойств компонентов /+/-
обработчик событий компонентов /+/-
Правда во втором случае добавляется ещё какойто механизм реализующий связь, но преимущества по надежности, как минимум, у второго случая на лицо. главное чтобы реализация самого механизма не съела все его плюсы..
а ещё в любой момент времени мы будем видеть те данные которые реально содежатся в переменных, а это уже огого какой +


Kolan   (2006-05-26 11:08:00) [22]

А сделать то что вы хотите наверно так можно:
CheckBox1.Checked := B;
Application.ProcessMessages;


Kolan   (2006-05-26 11:07:00) [23]


> Заманчиво?

Если честно, то нет. Плохо себе прадставляю 500 CheckBox'ов, за которыми я слежу и радуюсь. Воспользуйтесь лучьше отладчиком.


Жуков Олег   (2006-05-26 10:45:00) [24]


> Как сделать чтобы при изменении значения B изменилось значение
> С.Checked и наоборот? Не используя C.OnCick и т.п.
> Область применения: Вы ведете проект. используете различные
> настройки и т.п. которые содержа

- Тогда вообще не нужна переменная, достаточно только C.Checked;
> при изменении значения переменной свойство компонента меняется
> автоматически и наоборот

Так не бывает. Поменяй слово "переменная" на "свойство какого либо объекта", тогда можно сделать. Но в такой постановке будет бесконечный цикл.


wal   (2006-05-26 10:33:00) [25]

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

С уважением.


Страницы:   1 2

Наверх

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