Страница 28 из 59 Компонент 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 TFormI.OpenlClick(Sender: TObject); var Animage : TImage; AScrollBox: TScrollBox; i: integer; begin OpenDialogI-Filter:= GraphicFilter(TGraphic); if not OpenDialogI.Execute then Exit; Animage := TImage.Create(Self); with Animage do begin Picture.LoadFroinPile (OpenDialogI. 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(Extract PileName(OpenDialogI.FileName)) ; Animage.Parent := AScrollBox; AScrollBox.Parent:= Pages-Objects[Pagelndex] as TPage; i := Pages.IndexOf('Default'); if io-1 then Pages.Delete(i); TabSetl.Tabs := Pages ; TabSetl.TabIndex := Pages.Count - 1; end; end; В этом примере компонент TNotebook взаимодействует с TTabSet — вместе они составляют блокнот. |