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

 В примере список выводится на Listbox.

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;