JS+
Усиленный язык сценариев для Windows
с возможностью встраивания
в ваши приложения
О языке JS+ Справочник Скачать JS+ DLL
Контакты
СПРАВОЧНИК ПО ЯЗЫКУ JS+ Содержание

FindChildControl

- метод визуальных компонентов
Компоненты JS+
Возвращает дочерний объект с указанным именем.
Синтаксис
Object.FindChildControl(
  Name
): TComponent;

Параметры
Name String имя искомого дочернего объекта
Возвращаемое значение
Указанный дочерний объект или null в случае его отсутствия.
Пример 1 (JS+)
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;
}
Пример 2 (JS+)
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+Руководство пользователя
Адрес этой страницы: http://jsplus.ru/MANUAL/JSPlus/Component/Common/Method/FindChildControl.htm
© 2024,