Как получить число и список всех компонентов, расположенных на TNoteBook?

Материал из DRKB

Как получить число и список всех компонентов, расположенных на TNoteBook?[править | править код]

procedure TForm1.Button1Click(Sender: TObject);
var
  n: integer;
  p: integer;
begin
  ListBox1.Clear;
  with Notebook1 do
  begin
    for n := 0 to ControlCount - 1 do
    begin
      with TPage(Controls[n]) do
      begin
        ListBox1.Items.Add('Notebook Page: ' + TPage(Notebook1.Controls[n]).Caption);
        for p := 0 to ControlCount - 1 do
          ListBox1.Items.Add(Controls[p].Name);
        ListBox1.Items.Add(EmptyStr);
      end;
    end;
  end;
end;


ID: 01165



Вот две малениких процедурки, присваивающие заголовкам всех компонентов Label на всех страницах компонента NoteBook значение 'Foo'. (Я вам не говорил, что это будет ПОЛЕЗНЫМ примером!)


procedure TForm1.Button1Click(Sender: TObject);
var
  M, N: Word;
begin
  for N := 0 to TabbedNotebook1.Pages.Count - 1 do
    with TabbedNotebook1.pages.Objects[N] as TTabPage do
      for M := 0 to ControlCount - 1 do
        if Controls[M] is TLabel then
          with Controls[M] as TLabel do
            Caption := 'Foo';
end;

procedure TForm1.TabSet1Change(Sender: TObject; NewTab: Integer;
  var AllowChange: Boolean);
begin
  Notebook1.PageIndex := TabSet1.TabIndex;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  M, N: Word;
begin
  for N := 0 to TabbedNotebook1.Pages.Count - 1 do
    with Notebook1.pages.Objects[N] as TPage do
      for M := 0 to ControlCount - 1 do
        if Controls[M] is TLabel then
          with Controls[M] as TLabel do
            Caption := 'Foo';

end;


Source: http://delphiworld.narod.ru/
ID: 01175