Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

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

Delphi , Компоненты и Классы , Компоненты

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

Warp 4 спpашивает у хозяина:
- Хозяяяин, а у меня в pоду была DesqView?
- Hет, не было.
- Хозяяяин, а Windows 3.1 у меня в pоду не было?
- Hет, конечно не было.
- Хозяяяяин, а почему же тогда я такой тоpмозноооой?


procedure TForm1.Button1Click(Sender: TObject);
var
  n, p: integer;
begin
  ListBox1.Clear;
  with Notebook1 do
    for n := 0 to ControlCount - 1 do
      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;

Для получения количества страниц и списка всех компонентов на TNoteBook можно использовать предоставленный код.

Вот разбивка, что каждый раздел делает:

  • procedure TForm1.Button1Click(Sender: TObject);: Это обработчик события, который запускается при клике по кнопке Button1.
  • var n, p: integer;: Эти переменные типа integer объявлены для итерации над контролами на Notebook1.
  • ListBox1.Clear;: Эта строка очищает любые существующие элементы из списка ListBox1.
  • with Notebook1 do for n := 0 to ControlCount - 1 do begin: Это цикл, который итерирует по каждой странице на Notebook1. Свойство ControlCount возвращает количество контролов (страниц) на заметке, а Controls[n] получает nth страницу.
  • with TPage(Controls[n]) do begin: Это вложено в цикл для доступа к свойствам текущей страницы.
  • ListBox1.Items.Add('Notebook Page: ' + TPage(Notebook1.Controls[n]).Caption);: Эта строка добавляет элемент в список ListBox1, с заголовком текущей страницы. Класс TPage используется для получения заголовка страницы.
  • for p := 0 to ControlCount - 1 do begin: Это другой цикл, который итерирует по каждому контролу (компоненту) на текущей странице.
  • ListBox1.Items.Add(Controls[p].name);: Эта строка добавляет имя каждого компонента на текущей странице как новый элемент в список ListBox1.
  • ListBox1.Items.Add(EmptyStr);: Эта строка добавляет пустую строку для разделения элементов для разных страниц.

Альтернативное решение:

procedure TForm1.Button1Click(Sender: TObject);
var
  n, p: integer;
begin
  ListBox1.Clear;
  for n := 0 to Notebook1.PageCount - 1 do
    begin
      TPage(Notebook1.Pages[n]).Caption; // Получение заголовка страницы
      ListBox1.Items.Add('Notebook Page ' + IntToStr(n) + ': ' + TPage(Notebook1.Pages[n]).Caption);
      for p := 0 to TPage(Notebook1.Pages[n]).ControlCount - 1 do
        begin
          ListBox1.Items.Add(TPage(Notebook1.Pages[n]).Controls[p].name); // Получение имени каждого компонента на странице
        end;
    end;
end;

В этом альтернативном решении я использовал Notebook1.PageCount для получения количества страниц в заметке. Затем, для каждой страницы, я использовал TPage(Notebook1.Pages[n]).Caption для получения ее заголовка и добавил его в список вместе с именами ее компонентов.

В статье описывается процедура, которая позволяет получить количество и список всех компонентов, расположенных на TNoteBook в Delphi приложении, путем перебора страниц иControls каждого элемента.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Компоненты ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-07-06 02:22:24/0.0032620429992676/0