Конференция "Начинающим" » FindComponent не находит поле. Почему? [D7]
 
  • shandrik © (16.08.17 12:36) [0]
    В приложении имеется две формы.
    На форме1 есть несколько полей одинакового назначения (для нескольких источников данных) с именами Source1,Source2,Source3...

    Около этих полей есть кнопки, на которые посажена процедура, прописывающая в скрытом TLabel на второй форме индекс поля, около которого была кнопка нажата, и эту вторую форму визуализирующую. В ней вводятся данные, которые надо потом занести в поле, около которого была кнопка нажата. Из TLabel я беру его индекс и пытаюсь его получить:

    targetField:=FindComponent('Field'+form2.hidenlabel.captoin) as TEdit;

    Однако targetField после этого =nil. Предполагаю, что не находит. Почему? Пробовал использовать Application.FindComponent, но тоже безуспешно. (Это, кстати, то же, что и просто FindComponent?)
    Делал специальную переменную, где хранил вычисленное имя и проверял в отладчике - имя корректно, и на первой форме совершенно точное есть TEdit с таким именем.
    Что я не так делаю?
  • Игорь Шевченко © (16.08.17 12:42) [1]

    > Что я не так делаю?


    1. Ищещь не то
    2. Ищешь не там
  • Shandrik © (16.08.17 12:47) [2]
    В пределах одной формы поле находилось.
  • rrrrrrr © (16.08.17 14:20) [3]
    а ты хочешь чтоб твой файнд  что-то находил и в моих формах?
  • rrrrrrr © (16.08.17 15:05) [4]
    function InputValue(aEdit : TEdit)
    begin
    with TForm2.Create(nil) do
     try
      бла бла бла;
      if ShowModal = mrOk then
       aEdit.Text := ValueEnteredInForm2;
     finally
      Free
     end
    end
  • Германн © (17.08.17 01:17) [5]

    > Shandrik ©   (16.08.17 12:47) [2]
    >
    > В пределах одной формы поле находилось.

    FindComponent это не простая ( и тем более не волшебная) регулярная функция, а метод класса TCopmponent. Будучи вызван в методе некоей формы она и ищет сей компонент именно на этой форме.
  • rrrrrrr © (17.08.17 08:36) [6]
    странный архитектор.

    имена контролов знает откуда взять, но зачем-то использует имена, хотя можно использовать ссылки.
    наверное это пионер-скаут, которому нравится искать то, что и так у него уже есть.
 
Конференция "Начинающим" » FindComponent не находит поле. Почему? [D7]
Есть новые Нет новых   [118668   +49][b:0][p:0]