Справочник по компонентам Delphi. Часть 2 - Компонент TNotebook

ОГЛАВЛЕНИЕ

Компонент TNotebook

TObject ->TPersistent -> TComponent -> TControl -> TWinControl -> TCustoinControl -> TNotebook

Модуль EXTCTRLS

Страница Палитры компонентов Additional

Этот компонент представляет собой "страницы" блокнота, на которых распо­лагаются другие визуальные компоненты. Каждая страница сама является окон­ным элементом управления и содержит список того, что на ней расположено.

Получить доступ или переустановить активную страницу    записной книжки можно посредством имеющегося у нее имени:

(Pb) property ActivePage: string; 

Кроме того, активная страница еще и идентифицируется индексом, определен­ным в свойстве:

property Pagelndex: Integer;

Для реакции при изменении текущей страницы предусмотрено свойство:

(Pb) property OnPageChanged: TNotifyEvent;
В свойстве
(Pb) property Pages: TStrings; 

содержится вся информация о страницах. Напомним, что в классе TStrings есть два основных списка: через список Pages.Strings можно обратиться к именам страниц, а через список Objects — непосредственно к объектам-страницам. Опубликованными свойствами страницы являются Caption, Height, Width, Visible и TabOrder.Используя методы компонента TStrings, можно добавлять и удалять страницы, проводить поиск и т. п. В конструкторе ком­понента TNotebook список инициализируется единственной страницей с именем 'Default'.

В приведенном ниже фрагменте кода после выбора гмени файла изобра­жения добавляется новая страница, содержащая это изображение в компоненте TScrollBox. После успешной загрузки страница "Default" более здесь не нужна и удаляется, если она еще есть:

Procedure TForm1.OpenlClick(Sender: TObject);
var
    Animage : TImage;
    AScrollBox: TScrollBox;
    i: integer;
begin
    OpenDialog1.Filter := GraphicFilter(TGraphic);
    if not OpenDialogI.Execute then
        Exit;
    Animage := TImage.Create(Self);
    with Animage do
    begin
        Picture.LoadFroinPile (OpenDialog1.FileName);
        AutoSize := True;
        Visible := True;
    end;
    AScrollBox := TScrollBox.Create(Self);
    with AScrollBox do
    begin
        Align := alClient;
        Visible := True;
    end;
    with Notebookl do
    begin
        Pages.Add(ExtractFileName(OpenDialog1.FileName));
        Animage.Parent := AScrollBox;
        AScrollBox.Parent:= Pages.Objects[Pagelndex] as TPage;
        i := Pages.IndexOf('Default');
        if i >= 1 then Pages.Delete(i);
        TabSetl.Tabs := Pages;
        TabSetl.TabIndex := Pages.Count - 1;
    end;
end;
В этом примере компонент TNotebook взаимодействует с TTabSet — вместе они составляют блокнот.