Справочник по компонентам 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;