Форум: "Основная";
Текущий архив: 2002.05.23;
Скачать: [xml.tar.bz2];
ВнизДоступ к компонентам Child-форм Найти похожие ветки
← →
RaZEr (2002-05-06 20:49) [0]Как в MDI приложении получить доступ к компонентам Child-форм ?
← →
Malder (2002-05-06 23:49) [1]А какая разница Дочернее окно или нет ?
[имя формы].[имя компонента]
А вот если тебе нужно получить доступ к дочерним окнам (они же создаются динамически), то :
MDIForm.Children[номер окна]...
← →
RaZEr (2002-05-07 09:22) [2]Внимательнеее вопрос читай :
"доступ к компонентам "
Если ты знаешь, то массив MDIChildren[x] это массив TForm . А мне нужно чтобы был массив TMyForm :(
PS: Может можно сделать чтобы этот массив TForm стал массивом TMyForm ?!
← →
Malder (2002-05-07 23:26) [3]RaZEr, а-а-а, догнал. Допустим, если объявлена MyForm на которой лежит MyComponent, то:
MyForm(MDIForm.MDIChildren[i]).MyComponent...
← →
RaZEr (2002-05-08 07:36) [4]Я тут подумал а не лучше ли будет объявить массив этих детей :
MyForms: array [0..200] of TMyForm;
?
← →
Reindeer Moss Eater (2002-05-08 08:55) [5]Да пусть даже MDIChildren[x] будет массивом TObject.
Это ничуть не мешает использовать его для доступа к компонентам дочерних форм.
← →
RaZEr (2002-05-08 16:35) [6]2 Malder: Твоя гипотеза не работает :(
Reindeer Moss Eater : Прекрасно ! Так напиши примерчик, если не сложно .
← →
Malder (2002-05-08 17:11) [7]RaZEr, какая еще нафиг гипотеза ? Я никаких гипотез не выдвигал. Если ты про мой ответ - то все работает на ура между прочим. Ты бы сначала попробовал...
← →
RaZEr (2002-05-08 17:33) [8]Так я и попробовал :) ты чего думаешь я решил что метод кривой ?!
Смотри у меня есть Родитель BigForm: TBigForm и детки MyForm: TMyForm, я пишу :
BigForm(BigForm.MDIChildren[i]).Label1.Caption ...
и ничего не работает , т.е. Syntax Error . Если у тебя работает, напиши поподробней как !
← →
Reindeer Moss Eater (2002-05-08 18:27) [9]>RaZEr
TMyForm(MDIChildren[i]).MyCoolProperty:=bla-bla-bla
← →
RaZEr (2002-05-08 19:42) [10]Так а все-таки, не лучше ли будет запихать все в массив ?! Ведь при создании нового MDI Child окна, происходит переиндексация массива MDIChildren . И чтобы понять какое окно в массиве каким стало, приходится пробегаться по всему массиву .
← →
Malder (2002-05-08 21:42) [11]RaZEr, какая переиндексация? По моему, при появлении нового дочернего окна, ему присваивается следующий по порядку номер в MDIChildren...
А зачем тебе массив ? Что ты там хранить будешь ?
P.S. И вообще, какая разница, какое окно где ? Скорее всего дочерние окна одинаковые, значит и работа с ними должна быть типизированной. Текущее активное дочернее окно, это BigForm.MDIActiveChild или как то так...
← →
RaZEr (2002-05-09 07:35) [12]При создании нового дочернего окна ему присваивается порядковый номер 0 (в массиве MDIChildren).
Конечно ты прав,- все операции типизированы, но представь ситуацию: я что-то сохранил в каком-нибудь окне, а потом нужно выяснить в каком . Выход - пробегаться по массиву MDIChildren .
Впрочем я вообще за%бался с MDI интерфейсом . Думаю ты видел другие посты ...
PS: Я надеюсь ты согласен что :
BigForm(BigForm.MDIChildren[i]).Label1.Caption ...
не работает ?!
← →
Cobalt (2002-05-09 07:51) [13]> Конечно ты прав,- все операции типизированы, но представь ситуацию: я что-то сохранил в каком-нибудь окне, а потом нужно выяснить в каком . Выход - пробегаться по массиву MDIChildren .
А ты что хотел? Ведь ты работаешь с массивом однотипных данных
Делать собственный массив - глупость, а то, что надо будет пробегаться по нему, так он что у тебя, будет > хотя бы 1000 окон?
← →
Malder (2002-05-09 13:18) [14]RaZEr, ты типа хочешь сказать, что я тебе подсказал неправильно ?
Ты бы посты внимательно прочитал. Могу процетировать, чтоб наверх не смотреть:
Допустим, если объявлена MyForm на которой лежит MyComponent, то:
MyForm(MDIForm.MDIChildren[i]).MyComponent...
Здесь MyForm - ТИП ДОЧЕРНЕГО ОКНА. MDIForm - основное MDI окно. Ну надо было написать, конечно, TMyForm(MDIForm.MDIChildren[i]).MyComponent..., но я думал ты сообразишь. TMyForm приводит тип формы к типу TMyForm, вроде A:=String(B);
← →
RaZEr (2002-05-10 05:29) [15]Я не думал . Было 4-е утра . Я мог только тыкать что мне понаписали . А понаписали криво . Вообщем проехали - все ОК !
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.05.23;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.007 c