![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| AlexV1 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 50 Регистрация: 27.1.2003 Репутация: нет Всего: нет |
Есть приложение MDI, в котором главная форма frmMain (fsMDIForm),
дочерняя форма frmChld1 (fsMDIChild) и третья - не главная и не дочерняя, а совершенно отдельная форма frmMyDialog (fsNormal). Форма frmMyDialog вызывается из frmChld1 по кнопке. Затем из frmMyDialog нужно обратиться к контролу lblTitle формы frmChld1. Как это правильно сделать ? Если так: frmChld1.lblTitle.caption:=..., то во время выполнения программы выдает Access Violation ... Может через главную форму frmMain типа frmMain.Children[1].lblTitle.caption:=... Но так нельзя, не находит lblTitle. |
|||
|
||||
| SmaLL |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 557 Регистрация: 17.12.2002 Где: Voronezh Репутация: 1 Всего: 2 |
Если обращаться через главную форму, то надо писать так
А вообще это плохой метод, лучше пересмотреть логику программы. -------------------- Что ни делается - всЁ к лучшему! SmallWeb Мой адрес не дом и не улица, мой адрес родной пивзавод! |
||||
|
|||||
| AlexV1 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 50 Регистрация: 27.1.2003 Репутация: нет Всего: нет |
Так уже пробовал. Не работает |
|||
|
||||
| SmaLL |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 557 Регистрация: 17.12.2002 Где: Voronezh Репутация: 1 Всего: 2 |
Тебе обязательно из модальной формы менять капшн чилдрена?
Может лучше пусть сам чилдрен меняет свой капшн? Пусть модальное окно возвращает какое-нибудь значение после закрытия, а чилдрен будет его брать и совать в свой капшн. -------------------- Что ни делается - всЁ к лучшему! SmallWeb Мой адрес не дом и не улица, мой адрес родной пивзавод! |
|||
|
||||
| AlexV1 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 50 Регистрация: 27.1.2003 Репутация: нет Всего: нет |
Лучше бы сразу из модального окна суваться в дочернее.
Если перестроить логику программы, то как ? Есть гл.форма MDI и несколько дочерних окон. В одной из дочерних окон нужно сделать кнопку вызова модальной формы настроек, причем изменение настроек в модальной форме должны тут же отображаться в дочерней форме, из которой была вызвана форма настроек. |
|||
|
||||
| SmaLL |
|
||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 557 Регистрация: 17.12.2002 Где: Voronezh Репутация: 1 Всего: 2 |
Конечно лучше - если по быстрому, но это плохой стиль программирования. А спешка, как говориться нужна при ловле блох. Лучше если модальная форма не будет знать ничего о вызвавшей еЁ дочерней форме. Если, например, ты захочешь использовать это же модальное окно для настроек какого-нибудь другой дочерней формы, то модальная форма должна будет знать обо всех дочерних формах. А это лишний код, низкая гибкость и т.д. и т.п.
Например можно завести в модальной форме свойство типа TString, и в него, например, при закрытии формы совать значения твоих настроек:
Потом в дочерней форме после вызова модальной формы можно прочитать эти значения:
-------------------- Что ни делается - всЁ к лучшему! SmallWeb Мой адрес не дом и не улица, мой адрес родной пивзавод! |
||||||||
|
|||||||||
| AlexV1 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 50 Регистрация: 27.1.2003 Репутация: нет Всего: нет |
ok. Понятно.
Thanks! |
|||
|
||||
| Il'ya |
|
|||
|
Unregistered |
Вопрос где USES. :-)
|
|||
|
||||
| Sluggard |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 17.4.2003 Где: Kazan Репутация: нет Всего: нет |
К дочернему окну можно обратится из любого окна можно по имени, номеру или к актвному (это чаще всего)
if not (ActiveMDIChild = Nil) then if ActiveMDIChild is TMDIChild then with TMDIChild(ActiveMDIChild) do begin // Давайте запишем что нибудь в активную форму end; |
|||
|
||||
| Dapo |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 417 Регистрация: 18.4.2002 Репутация: нет Всего: 1 |
Надо полагать, что форма настроек у тебя создается динамически? Может такой вариант: При создании формы указываешь ей в качестве Owner-a ту форму настройки которой хочешь изменить... И через Owner влияешь... :-) Чем плохо? Нет лишнего кода и гибко. |
|||
|
||||
| Dapo |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 417 Регистрация: 18.4.2002 Репутация: нет Всего: 1 |
Я цитировал Small-a потому что не согласен по поводу "...должна знать обо всех дочерних формах...". Извиняюсь за лишний топ.
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |