Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.006 c
1-73174
velk
2002-05-14 09:41
2002.05.23
Как отловить сообщение от нажатой ссылки?


3-73059
nejest
2002-04-27 01:17
2002.05.23
Проблема с русским языком в QReport в Windows NT


14-73390
Anatoly Podgoretsky
2002-04-16 18:31
2002.05.23
Чат


4-73445
Keymaster
2002-03-21 23:35
2002.05.23
Журнал программ


14-73369
MBo
2002-04-15 18:29
2002.05.23
Небесполезные мелочи (в качестве обучения)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский