IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Mdi приложение, Как обратиться к нужному окну?
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 53
Пол: Мужской

Репутация: -  0  +


Задача:
В программе открыто несколько одинаковых "дочерних окон" - (А). Из одного из них открывается еще одно "дочернее окно" - (Б). В окне Б вводятся данные, которые нужно записать в переменную, определенную в окне А, из которого запустилось Б. Проблема в том, что данные записываются во все окна А, и как с этим справиться я не знаю.
Найти порядок дочерних окон, и определить нужное окно (т.е. его порядковый номер в списке дочерних окон MainForm) я, в принципе, могу. Но как обратиться к нужной переменной именно в этом окне?

Вопрос вдогонку:
Как из MainForm считать данные компонентов дочернего окна или запустить процедуру дочернего окна?

Сообщение отредактировано: YurKaluga -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


code warrior
****

Группа: Пользователи
Сообщений: 484
Пол: Мужской
Реальное имя: Славен

Репутация: -  8  +


Цитата(YurKaluga @ 23.01.2006 11:42) *
Задача:
В программе открыто несколько одинаковых "дочерних окон" - (А). Из одного из них открывается еще одно "дочернее окно" - (Б). В окне Б вводятся данные, которые нужно записать в переменную, определенную в окне А, из которого запустилось Б. Проблема в том, что данные записываются во все окна А, и как с этим справиться я не знаю.
Когда ты создаёшь новое окно (Б), то пересылай в него ссылку на окно (А), из которого происходит создание.
Цитата(YurKaluga @ 23.01.2006 11:42) *

Найти порядок дочерних окон, и определить нужное окно (т.е. его порядковый номер в списке дочерних окон MainForm) я, в принципе, могу. Но как обратиться к нужной переменной именно в этом окне?
Вопрос вдогонку:
Как из MainForm считать данные компонентов дочернего окна или запустить процедуру дочернего окна?

Есть у TForm индексное свойство

property MDIChildren[I: Integer]: TForm;


Преобразуешь тип формы - и делаешь с нею что хочешь.

Сообщение отредактировано: hardcase -


--------------------
ИзВ ин ИтЕ зА нЕ рОв НЫй П оч ЕРк
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 53
Пол: Мужской

Репутация: -  0  +


hardcase,

"пересылай в него ссылку на окно (А)" - что ты имеешь ввиду?

"Преобразуешь тип формы" -т.е.?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


code warrior
****

Группа: Пользователи
Сообщений: 484
Пол: Мужской
Реальное имя: Славен

Репутация: -  8  +


Цитата(YurKaluga @ 25.01.2006 12:38) *

"пересылай в него ссылку на окно (А)" - что ты имеешь ввиду?

Я имею в виду, то что при создании нового или (вызове единственного существующего) (Б) окна ты передаёшь в него ссылку на то окно, которое его вызывает, чтоб (Б) было осведомлено о контексте своего выова - иначе нам будет трудно корректно предавать инфу в нужное окно.
Цитата(YurKaluga @ 25.01.2006 12:38) *

"Преобразуешь тип формы" -т.е.?

TMyForm( MainForm.MDIChildren[ Index ] )


--------------------
ИзВ ин ИтЕ зА нЕ рОв НЫй П оч ЕРк
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 23.11.2025 8:55
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name