![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как применить FindComponent на дочерних окнах [D7, XP]
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]и чего?
в него нельзя писать/читать после этого?