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

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

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

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

В данном документе показана технология динамического добавления страниц компонента PageControl (объектов TTabSheet) к элементу управления Windows 95/NT PageControl (объект TPageControl). Оба этих объекта объявлены в модуле ComCtrls. Поэтому убедитесь в том, что ComCtrls указан в списке используемых модулей.

Как динамически создать PageControl

Прежде, чем мы приступим к динамическому созданию страниц, давайте динамически создадим PageControl (если он еще не на форме). Это делается посредством вызова конструктора TPageControl Create с параметром owner, равным Self. Конструктор Create возвращает объектную ссылку на вновь созданный объект PageControl и назначает его переменной 'PageControl'. Вторым шагом будет установка свойства PageControl Parent в Self. Свойство Parent определяет где должен быть отображен новый PageControl; в нашем случае это будет сама форма. Вот кусок кода, демонстрирующий вышесказанное:


var

PageControl : TPageControl;

PageControl := TPageControl.Create(Self);
PageControl.Parent := Self;

Примечание: При разрушении формы разрушаются также PageControl и ее закладки, поскольку они принадлежат форме.

Как динамически создавать закладки

Существует два основных способа добавления новых страниц к PageControl. Сначала вы должны динамически создать TTabSheet следующим образом:


var
TabSheet : TTabSheet;
TabSheet := TTabSheet.Create(Self);

Затем ему необходимо присвоить заголовок следующей командой:


TabSheet.Caption := 'Закладка 1'; 

И, наконец, самая важное действие заключается в том, что новой странице необходимо сообщить, какому объекту PageControl она принадлежит. Это делается с помощью присваивания свойством TTabSheet PageControl переменной-ссылки TPageControl, типа той, которую мы создали выше (PageControl). Вот кусок кода, демонстрирующий вышесказанное:


TabSheet.PageControl := PageControl; 

Как динамически добавлять к страницам элементы управления

Ключевым моментом при создании и размещении элемента управления на странице TabSheet является назначение свойства Parent на переменную-ссылку класса TTabSheet. Вот пример:


var

Button : TButton;

Button := TButton.Create(Self);
Button.Caption := 'Кнопка 1';
Button.Parent := TabSheet;

Более подробно об объектах TPageControl и TTabSheet вы можете узнать в онлайн-документации, или посмотреть код файла ComCtrls.pas, расположенного в вашем каталоге ..\Delphi 2.0\SOURCE\VCL.

Полный код примера


// Код использует форму с единственной на ней кнопкой.

unit DynamicTabSheetsUnit;

interface

uses

  Windows, Messages, SysUtils, Classes, Graphics, Controls,
  Forms, Dialogs, StdCtrls, Buttons;

type

  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure TestMethod(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var

  Form1: TForm1;

implementation

uses ComCtrls;

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var

  PageControl: TPageControl;
  TabSheet: TTabSheet;
begin

  // Создаем PageControl
  PageControl := TPageControl.Create(Self);
  PageControl.Parent := Self;

  // Создаем первую страницу и связываем ее с PageControl
  TabSheet := TTabSheet.Create(Self);
  TabSheet.Caption := 'Закладка 1';
  TabSheet.PageControl := PageControl;

  // Создаем первую страницу

  with TButton.Create(Self) do
  begin
    Caption := 'Кнопка 1';
    OnClick := TestMethod; // Назначаем обработчик события
    Parent := TabSheet;
  end;

  // Создаем вторую страницу и связываем ее с PageControl

  TabSheet := TTabSheet.Create(Self);
  TabSheet.Caption := ' Закладка 2';
  TabSheet.PageControl := PageControl;
end;

procedure TForm1.TestMethod(Sender: TObject);
begin

  ShowMessage('Привет');
end;

end.

Динамическое создание компонентов PageControl и TabSheet в приложении Windows.


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

Получайте свежие новости и обновления по 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:58:47/0.003917932510376/0