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

Динамические PageControl и TabSheet

Delphi , Компоненты и Классы , Вкладки и Страницы

Динамические PageControl и TabSheet


var
  T: TTabSheet;
  P: TPageControl;
begin
  // Создаем PageControl
  // При создании получаем ссылку на PageControl, чтобы в дальнейшем на него ссылаться.
  P := TPageControl.Create(application);
  with P do
  begin
    Parent := Form1; // устанавливаем его как элемент управления формы.
    Top := 30;
    Left := 30;
    Width := 200;
    Height := 150;
  end; // with TPageControl

  // Создаем 3 страницы
  T := TTabSheet.Create(P);
  with T do
  begin
    Visible := True;
      // Это необходимо, или форма не будет корректно перерисовываться
    Caption := 'Страница 1';
    PageControl := P; // Назначаем Tab в Page Control
  end; // with

  T := TTabSheet.Create(P);
  with T do
  begin
    Visible := True;
      // Это необходимо, или форма не будет корректно перерисовываться
    Caption := 'Страница 2';
    PageControl := P; // Назначаем Tab в Page Control
  end; // with

  T := TTabSheet.Create(P);
  with T do
  begin
    Visible := True;
      // Это необходимо, или форма не будет корректно перерисовываться
    Caption := 'Страница 3';
    PageControl := P; // Назначаем Tab в Page Control
  end; // with

  // Создаем 3 кнопки, 1 на страницу
  with tbutton.create(application) do
  begin
    Parent := P.Pages[0]; // "Указываем" кнопке родительскую страницу
    Caption := 'Привет, страница 1';
    Left := 0;
    Top := 0;
  end; // with

  with tbutton.create(application) do
  begin
    Parent := P.Pages[1]; // "Указываем" кнопке родительскую страницу
    Caption := 'Привет, страница 2';
    Left := 50;
    Top := 50;
  end; // with

  with tbutton.create(application) do
  begin
    Parent := P.Pages[2]; // "Указываем" кнопке родительскую страницу
    Caption := 'Привет, страница 3';
    Left := 100;
    Top := 90;
  end; // with

  // Это должно быть сделано, или Tab первоначально не синхронизируется
  // с правильной страницей. Только в случае, если у вас более чем одна страница.
  P.ActivePage := P.Pages[1];
  P.ActivePage := P.Pages[0]; // Реально показываемая страница
end;

Here's the translation of the Delphi code into Russian:

Код на языке Delphi создает экземпляр TPageControl с тремя экземплярами TTabSheet и тремя экземплярами TButton, один на каждой странице.

Разбивка кода:

  1. Первая секция создает экземпляр TPageControl под именем P и устанавливает его свойства: Parent, Top, Left, Width и Height.
  2. Следующие секции создают три экземпляра TTabSheet под именами T и устанавливают их свойства:
    • Visible: Устанавливается в значение True, чтобы сделать страницу видимой.
    • Caption: Устанавливает заголовок каждой страницы (например, "Страница 1").
    • PageControl: Присваивает экземпляру TPageControl под именем P каждому вкладке, что связывает вкладку с контролем страниц.
  3. Следующие секции создают три экземпляра TButton и устанавливают их свойства:
    • Parent: Устанавливает родителя каждого кнопки в одну из страниц контрола страниц (P.Pages[0], P.Pages[1], и т.д.).
    • Caption: Устанавливает заголовок каждой кнопки.
    • Left и Top: Устанавливают позицию каждой кнопки на своей соответствующей странице.
  4. В конце кода устанавливается активная страница контрола страниц в вторую страницу (P.Pages[1]) с помощью свойства ActivePage.

Примечания:

  • Свойство Visible для каждого вкладки установлено в значение True, что делает их видимыми по умолчанию.
  • Свойство Caption для каждой страницы, но это не ясно, почему это необходимо. Это может быть остатком из более ранней версии кода или просто косметическим изменением.
  • Свойство PageControl присваивается каждой вкладке, что связывает вкладку с контролем страниц.
  • Свойство ActivePage устанавливается в вторую страницу (P.Pages[1]) в конце, что делает ее видимой по умолчанию. Это может быть полезно, если вы хотите показать конкретную страницу по умолчанию.

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

  • Вместо создания отдельных кнопок для каждой страницы можно создать одиночную кнопку и переместить ее на различные страницы с помощью свойства Parent.
  • Если вам нужно больше гибкости в вашем макете, рассмотрите использование контейнера TPanel или другого контрола для хранения ваших кнопок и других элементов интерфейса.

В статье описывается пример создания динамических PageControl и TabSheet в Delphi, при помощи которого можно создавать интерфейсы с плавающими окнами и управлять ими.


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

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




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


:: Главная :: Вкладки и Страницы ::


реклама


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

Время компиляции файла: 2024-11-30 11:42:55
2024-12-21 14:56:55/0.0027070045471191/0