Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.05.23;
Скачать: CL | DM;

Вниз

Доступ к компонентам 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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.017 c
4-73473
Dialogig
2002-03-19 18:51
2002.05.23
Помогите добрые люди!!!


3-73068
Shumlyansky
2002-04-25 16:24
2002.05.23
Как сделать чтобы база созданная в Paradox не тормозила при заге


1-73309
Eugene Shebeko
2002-05-08 23:02
2002.05.23
Grid с сортировкой, картинками и мультивыбором


1-73146
Виталик
2002-05-13 17:46
2002.05.23
Кнопка по умолчанию


3-73062
Bardel
2002-04-27 14:22
2002.05.23
Ошыбки