Topic: Найти подчиненные элементы на форме скриптом

Для того чтобы найти родительский элемент мы используем свойство Parent. Мне нужно пойти в обратную сторону от родителя к подчиненным.
Подскажите пожалуйста как скриптом найти подчиненные элементы на форме?

Re: Найти подчиненные элементы на форме скриптом

Пусть ваш элемент называется MyControl, тогда


TWinControl(MyControl).ControlCount - число дочерних элементов, а
TWinControl(MyControl).Controls[] - массив дочерних элементов,

Визуальное программирование: блог и телеграм-канал.

Re: Найти подчиненные элементы на форме скриптом

Спасибо.
Еще вопрос: как добавить столбец в TableGrid? Нашел конструкцию from1.Tgrid.Columns.Add, но не могу понять как быть дальше, не принимает ни количество ни текстовое значение....

Re: Найти подчиненные элементы на форме скриптом

// процедура создания таблиц
procedure userTab ;
var
NxTextColumn: TNxTextColumn;
begin
    frmAdmin.tgUserApp.Columns.Clear;
      try
        frmAdmin.tgUserApp.Columns.Add(TNxTextColumn);
       except
      end;
      try
        frmAdmin.tgUserApp.Columns.Add(TNxTextColumn);
       except
      end;
      try
        frmAdmin.tgUserApp.Columns.Add(TNxTextColumn);
       except
      end;
      try
        frmAdmin.tgUserApp.Columns.Add(TNxTextColumn);
       except
      end;
      try
        frmAdmin.tgUserApp.Columns.Add(TNxTextColumn);
       except
      end;

 frmAdmin.tgUserApp.Columns[0].Color := clWhite;
 frmAdmin.tgUserApp.Columns[1].Color := clWhite;
 frmAdmin.tgUserApp.Columns[2].Color := clWhite;
 frmAdmin.tgUserApp.Columns[3].Color := clWhite;
 frmAdmin.tgUserApp.Columns[4].Color := clWhite;
 frmAdmin.tgUserApp.HeaderStyle:= hsOffice2007;
 frmAdmin.tgUserApp.Columns[0].Visible := False;
end;

5 (edited by indigen 2020-04-23 11:22:43)

Re: Найти подчиненные элементы на форме скриптом

Не работает, что я делаю не так?
Вызов процедуры по нажатию кнопки, после отработки открывается форма frmReport.

procedure ReportGrunt (target: TObject; row: integer; Price: Double);
var Value, TareValue, TareSmall, TareBig, TareSmallCol, TareBigCol, Sum: Double;
    NewCol: TNxTextColumn;
begin
    Value:=TdbEdit(TAForm(target).FindComponent('tbGruntValueZapas')).Value;
    TareSmall:=TdbEdit(TAForm(target).FindComponent('tbGruntTareSmall')).Value;
    TareSmallCol:=TdbEdit(TAForm(target).FindComponent('tbGruntTareSmallCol')).Value;
    TareBig:=TdbEdit(TAForm(target).FindComponent('tbGruntTareBig')).Value;
    TareBigCol:=TdbEdit(TAForm(target).FindComponent('tbGruntTareBigCol')).Value;
    TareValue:=TareSmall*TareSmallCol+TareBig*TareBigCol;
    Sum:=Price*TareValue;
    frmReport.tgReport.Columns.Add(NewCol);
    frmReport.tgReport.Columns.Add(NewCol);
    frmReport.tgReport.Columns.Add(NewCol);
    frmReport.tgReport.Columns.Add(NewCol);
    frmReport.tgReport.Columns.Add(NewCol);
    frmReport.tgReport.AddRow(1);
    frmReport.tgReport.Cells[0,row]:=TdbLabel(TAForm(target).FindComponent('lbGrunt')).Caption;
    frmReport.tgReport.Cells[1,row]:=FormatFloat('# ###.00', Value);
    frmReport.tgReport.Cells[2,row]:=FormatFloat('# ###.00', TareValue);
    frmReport.tgReport.Cells[3,row]:=FormatFloat('# ###.00', Price);
    frmReport.tgReport.Cells[4,row]:=FormatFloat('# ###.00', Sum);
end;

Re: Найти подчиненные элементы на форме скриптом

    
      try
        //столбец
       except
      end;