Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Поиск компонентов на форме


Автор: artsb 15.1.2009, 00:12
Подскажите плиз, какие есть варианты поиска компонентов на форме (например, по имени, по классу, по какому-либо свойству).
Спасибо.

Автор: Romikgy 15.1.2009, 00:36
Form1-> Components[]
в хелпе посмотри вроде так оно

Автор: 586 15.1.2009, 01:23
Form1->FindComponent

Автор: Mpak 15.1.2009, 05:20
Вот пример кода, который ищет все лейблы на форме с прификсом в имени Label:
Код

int j = 1;
do { j++; }
while ((TLabel*)FindComponent("Label" + IntToStr(j)));


Еще как-то мне тут подкиниули как найти компонент вызвавший функцию при помощи Sender'a
Ищу Edit вызвавший функцию, все едиты на форме имеет имена EdtX (где X - номер)
Код

AnsiString num;
TComponent* sndr = dynamic_cast<TComponent*>(Sender);
num     = sndr->Name[4];
TEdit *E = (TEdit *)FindComponent("Edt" + num);

Автор: THandle 15.1.2009, 08:56
Можно еще сделать с помощью API GetWindow, EnumChildWindows. Ну тут уже отбор вручную, более трудоемкий метод smile

Автор: artsb 15.1.2009, 13:27
Всем спасибо.

Кое-что вспомнил smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)