Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как применить FindComponent на дочерних окнах [D7, XP]


Страницы:   1 2

rammic ©   (2011-10-18 14:06:00) 

Прошу помощи у мастеров.
Если я пишу
kZ[i]:= StrToFloat(TEdit(FindComponent('Edit' + IntToStr(i))).Text);
и эти Edit-ы находятся главной форме, то все получается.
Что нужно сделать, чтобы из главной формы видеть компоненты, которые
находятся на дочерних формах?


Плохиш   (2011-10-18 20:24:00) [1]

Может орешник востановить?


Anatoly Podgoretsky   (2011-10-18 16:00:00) [2]

FindControl у соответствующего контейнера или рекурсия.


rammic   (2011-10-18 15:33:00) [3]

Спасибо, прошу прощения за полное отсутствие смекалки


Медвежонок Пятачок   (2011-10-18 15:30:00) [4]

и я не знаю как передать в него то, что файнд найдет в Edita-x Form2.

Пипец. Здесь, значит, еще знаешь
>kZ[i]:= StrToFloat(TEdit(FindComponent('Edit' + IntToStr(i))).Text);

А здесь уже разрыв шаблона?
kZ[i]:= StrToFloat(TEdit(Form2.FindComponent('Edit' + IntToStr(i))).Text);


Ega23   (2011-10-18 15:26:00) [5]


> Может из процедуры главной формы писать Form2.FindComponent?


Попробуй, в чём проблема-то? Получится - хорошо. Не получится - тоже результат.


rammic   (2011-10-18 15:22:00) [6]

Может из процедуры главной формы писать Form2.FindComponent?


rammic   (2011-10-18 15:20:00) [7]

Моя проблема в том, что массив kZ - переменная процедуры главной формы
и я не знаю как передать в него то, что файнд найдет в Edita-x Form2.
Понимаю, что проблема совсем глупая, но я не могу ее решить


Медвежонок Пятачок   (2011-10-18 15:09:00) [8]

>kZ[1]:= FloatToStr( Form2.Edit1.Text)

Ты до эдита, принадлежащего другой форме сумел добраться?
Сумел.

Так в чем твоя проблема вызвать метод файндкомпонет у этой же Form2?


rammic   (2011-10-18 15:03:00) [9]

Загадочный ответ


Медвежонок Пятачок   (2011-10-18 15:00:00) [10]

пятьдесят


rammic   (2011-10-18 14:55:00) [11]

Имел ввиду StrToFloat


Медвежонок Пятачок   (2011-10-18 14:54:00) [12]

А как ты сейчас "передаешь" содержимое Edit1 c Form2?

kZ[1]:= FloatToStr(Form2.Edit1.Text)

Трудностей нет?


rammic   (2011-10-18 14:52:00) [13]

А как передать эти данные в процедуру главной формы?


Медвежонок Пятачок   (2011-10-18 14:47:00) [14]

А зачем тебе знать ответ, если ты читать не умеешь?

>вызывать файнд не у главной а у дочерних форм


rammic   (2011-10-18 14:45:00) [15]

Спасибо, Так что, нет другого способа заполнить массив кроме как
писать 20 строк?


Медвежонок Пятачок   (2011-10-18 14:40:00) [16]

Ты нажми F1 и узнаешь, может или не может.
Это не абстрактная волшебная функция поиска.
Это метод класса.
У тебя он вызывается у главной формы и ищет компоненты которыми она владеет. Других не ищет потому что там где она их ищет -  их нет.


rammic   (2011-10-18 14:34:00) [17]

Так может или не может FindComponent видеть компоненты на дочерних окнах? Вряд-ли он заполнится сам


Медвежонок Пятачок   (2011-10-18 14:31:00) [18]

не пиши если неохота.
вдруг массив сам заполнится.


rammic   (2011-10-18 14:29:00) [19]

Можно, но неохота писать двадцать строк kZ[1]:= FloatToStr(Form2.Edit1.Text)


Медвежонок Пятачок   (2011-10-18 14:23:00) [20]

и чего?
в него нельзя писать/читать после этого?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо