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

> ВНИМАНИЕ!

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

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


Пионер
**

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

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


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

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

Сообщение отредактировано: YurKaluga - 23.01.2006 13:36
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
hardcase
сообщение 24.01.2006 17:52
Сообщение #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 - 24.01.2006 17:52


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


Пионер
**

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

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


hardcase,

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

"Преобразуешь тип формы" -т.е.?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
hardcase
сообщение 25.01.2006 14:06
Сообщение #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

 



- Текстовая версия 14.07.2025 20:26
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"