Мастера DELPHI, Delphi programming community Рейтинг@Mail.ru Титульная страница Поиск, карта сайта Написать письмо 
| Новости |
Новости сайта
Поиск |
Поиск по лучшим сайтам о Delphi
FAQ |
Огромная база часто задаваемых вопросов и, конечно же, ответы к ним ;)
Статьи |
Подборка статей на самые разные темы. Все о DELPHI
Книги |
Новинки книжного рынка
Новости VCL
Обзор свежих компонент со всего мира, по-русски!
|
| Форумы
Здесь вы можете задать свой вопрос и наверняка получите ответ
| ЧАТ |
Место для общения :)
Орешник |
Коллекция курьезных вопросов из форумов
KOL и MCK |
KOL и MCK - Компактные программы на Delphi
Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / rsdn.org

 
Чтобы не потерять эту дискуссию, сделайте закладку « предыдущая ветвь | форум | следующая ветвь »

FindComponent не находит поле. Почему? [D7]


shandrik ©   (16.08.17 12:36

В приложении имеется две формы.
На форме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]

странный архитектор.

имена контролов знает откуда взять, но зачем-то использует имена, хотя можно использовать ссылки.
наверное это пионер-скаут, которому нравится искать то, что и так у него уже есть.


версия для печати

Написать ответ

Ваше имя (регистрация  E-mail 







Разрешается использование тегов форматирования текста:
<b>жирный</b> <i>наклонный</i> <u>подчеркнутый</u>,
а для выделения текста программ, используйте <code> ... </code>
и не забывайте закрывать теги! </b></i></u></code> :)


Наверх

  Рейтинг@Mail.ru     Титульная страница Поиск, карта сайта Написать письмо