|
|
Возвращает дочерний объект с указанным именем.
Синтаксис
Object.FindChildControl(
| Name
| ): TComponent;
|
Параметры
|
Name
| String
| имя искомого дочернего объекта
|
|
Возвращаемое значение
Указанный дочерний объект или null в случае его отсутствия.
var Name_Str="SearchName";
// Главная форма frm=new TForm(); frm.Caption="JS+ - метод визуальных компонентов FindChildControl"; frm.Width =450; frm.Height=300;
// Строка состояния stb=new TStatusBar(frm); stb.SimpleText= ' Для поиска объекта "'+Name_Str+'" нажмите кнопку "Найти!"';
// Кнопка btn=new TButton(frm); btn.Caption="Найти!"; btn.Left=frm.ClientWidth-btn.Width-15; btn.Top =stb.Top-btn.Height-15; btn.OnClick=btn_Click;
// Панель pnl=new TPanel(frm); pnl.Name=Name_Str; pnl.Caption="Панель на форме"; pnl.BorderStyle=bsSingle; pnl.Left=pnl.Top=15; pnl.Width =frm.ClientWidth-pnl.Left*2; pnl.Height=btn.Top-pnl.Top*2;
frm.ShowModal();
// Обработчик события OnClick function btn_Click(btn) { var obj,stb_Str=' Объект с именем "'+Name_Str+'" ';
if ((obj=frm.FindChildControl(Name_Str))!=null) { stb_Str+="найден, это "+obj.ClassName(); obj.Color=clWhite; } else stb_Str+="не найден";
stb.SimpleText=stb_Str; }
|
var Name_Str="SearchName";
// Главная форма frm=new TForm(); frm.Caption="JS+ - метод визуальных компонентов FindChildControl"; frm.Width =450; frm.Height=300;
// Строка состояния stb=new TStatusBar(frm); stb.SimpleText= ' Для поиска объекта "'+Name_Str+'" нажмите кнопку "Найти!"';
// Кнопка btn=new TButton(frm); btn.Caption="Найти!"; btn.Left=frm.ClientWidth-btn.Width-15; btn.Top =stb.Top-btn.Height-15; btn.OnClick=btn_Click;
// Панель pnl=new TPanel(frm); pnl.Caption="Панель на форме"; pnl.BorderStyle=bsSingle; pnl.Left=pnl.Top=15; pnl.Width =frm.ClientWidth-pnl.Left*2; pnl.Height=btn.Top-pnl.Top*2;
// Метка lbl=new TLabel(pnl); lbl.Name=Name_Str; lbl.Caption="Метка на панели"; lbl.Left=lbl.Top=15;
frm.ShowModal();
// Обработчик события OnClick function btn_Click(btn) { var obj,stb_Str=' Объект с именем "'+Name_Str+'" ';
if ((obj=Recurse_FindControl(frm))!=null) { stb_Str+="найден, это "+obj.ClassName(); obj.Color=clWhite; } else stb_Str+="не найден";
stb.SimpleText=stb_Str; }
function Recurse_FindControl(Parent) { var i,cnt,obj;
for (i=0;i<Parent.ControlCount;i++) { cnt=Parent.Controls[i]; if ((obj=cnt.FindChildControl(Name_Str))!=null) return obj; if ((obj=Recurse_FindControl(cnt))!=null) return obj; }
return null; }
|
Примечание
Метод FindChildControl ищет только прямые дочерние объекты. Для поиска вложенных дочерних объектов используйте указанный метод совместно со свойствами ControlCount и Controls (см. Пример
2).
Совместимость
C++ Builder/Delphi
|
JS+ | Руководство пользователя
|
|
|
|
|
|