Найти Control-ы на Form-е
Как найти, например, все DBGrid-ы, а они могут быть и на панелях, и вооще где угодно, и что-то с ними сделать. Может кто делал такое...
Буду благодарен за исходник на [email]sanja@tpv.ru[/email]
Цитата:
Originally posted by Tristan
Есть форма, на ней панели, GroupВox-ы и др.
Как найти, например, все DBGrid-ы, а они могут быть и на панелях, и вооще где угодно, и что-то с ними сделать. Может кто делал такое...
Буду благодарен за исходник на [email]sanja@tpv.ru[/email]
Есть форма, на ней панели, GroupВox-ы и др.
Как найти, например, все DBGrid-ы, а они могут быть и на панелях, и вооще где угодно, и что-то с ними сделать. Может кто делал такое...
Буду благодарен за исходник на [email]sanja@tpv.ru[/email]
Смотрим хелп и видим:
Цитата:
TComponent::ComponentCount
Indicates the number of components owned by the component.
__property int ComponentCount = {read
=GetComponentCount, nodefault};
Description
Use ComponentCount to find or verify the number of components owned by a component, or when iterating through the Components list to perform some action on all owned components. ComponentCount is used internally for such iterative procedures.
Note: The ComponentCount of a component contains the same number of items as in the Components list for that component.
Аха получим количество компонентов.
Смотрим далее:
Цитата:
TComponent::Components
Lists all components owned by the component.
__property TComponent* Components[int Index] = {read
=GetComponent};
Description
Use Components to access any of the components owned by this component, such as the components owned by a form. The Components property is most useful when referring to owned components by number rather than name. It is also used internally for iterative processing of all owned components.
Note: For convenience use Components with ComponentCount for iterative processing.
А чтобы проверить что компонент допустим принадлежит к TDBGrid
применим следующую конструкцию:
ClassName(Ptr2Class->ClassType());
Из всего вышеописанного пример:
Цитата:
TForm1::ButOnClick(TObject *Sender)
{
for(int i = 0; i < this->ComponentsCount; i++)
{
if(ClassName((this->Components)->ClassType()) == "TDBGrid")
{
//Тут делаешь что надо
}
}
}
Да, надо почаще в help заглядывать...