Перейти к содержанию
Fire Monkey от А до Я
  • 0

Поиск компонента на форме по имени в Run-Time?


d7d1cd

Вопрос

Привет всем! Возник такой вопрос: возможно ли при работе программы получить доступ к свойствам компонента, зная о нем только его имя в текстовой переменной? Например так:

UnicodeString name = L"Button1";
// На форме есть кнопка с именем Button1. Как используя переменную name получить доступ к этой кнопке?

В VCL это возможно при помощи функции FindComponent. Она по имени компонента возвращает указатель, который надо привести к переменной нужного класса и управление в руках. В FMX эта функция находится в переменной Application, однако она не находит компоненты. Например, на форме есть Edit1, пишу код:

UnicodeString name = L"Edit1";
TEdit *edit = static_cast<TEdit*>(Application->FindComponent(name);
// В результате работы данного кода переменная edit принимает значение NULL

Что я не правильно делаю?

Ссылка на комментарий

Рекомендуемые сообщения

  • 0

Вроде разобрался.

 

Вчера функция FindComponent возвращала NULL, сегодня все нормально. Спишем на конец рабочего дня :) И понял еще, что функция FindComponent относительная, то есть ищет компоненты не во всем приложении сразу, а по иерархии: "в текущем месте и ниже" того места, откуда она была вызвана.

Ссылка на комментарий
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...