Difference between revisions of "TNotebook"
m |
(TNotebook) |
||
Line 1: | Line 1: | ||
{{TNotebook}} | {{TNotebook}} | ||
− | + | [[image:tnotebook.png]] '''TNoteBook''' is a component that provides a container to hold a variety of controls arranged in pages, much like a real-world notebook. It is a descendant of [[TWinControl]] and is available under the [[Additional tab]] of the [[Component Palette]]. | |
− | Pages from a TNotebook are | + | Unlike [[TPageControl]] the <tt>TNotebook</tt> does not have tabs. All pages of the <tt>TNotebook</tt> are listed by the <tt>Pages</tt> property. At designtime the pages are listed in the object tree of the Object Inspector under the Notebook node; here the developer can easily switch from page to page. At runtime, special code must be provided to show a specific page; the <tt>PageIndex</tt> property determines which page is currently visible. |
+ | |||
+ | <tt>TNotebook</tt> can be used to create tabless, wizard-like dialogs in which "Forward"/"Backward" buttons are available to move from page to page: | ||
+ | <syntaxhighlight lang=Pascal>procedure TForm1.ForwardBtnClick(Sender: TObject); | ||
+ | begin | ||
+ | if Notebook1.PageIndex < Notebook1.PageCount-1 then | ||
+ | Notebook1.PageIndex := Notebook1.PageIndex + 1; | ||
+ | end; | ||
+ | |||
+ | procedure TForm1.BackwardBtnClick(Sender: TObject); | ||
+ | begin | ||
+ | if Notebook1.PageIndex > 0 then | ||
+ | Notebook1.PageIndex := Notebook1.PageIndex - 1; | ||
+ | end; | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | Pages can be added at designtime by right-clicking on the <tt>TNotebook</tt> component and selecting ''Add Page'' from the context menu. Correspondingly a page can be removed here by the menu item ''Delete Page''. | ||
+ | |||
+ | At runtime, a page is added by calling <tt>Notebook.Add('new pagename')</tt> with the name of the new page as parameter; the function returns the index of the new page. The new page itself can be addressed by using the property <tt>Notebook.Page[newindex]</tt> -- please note the singular here! | ||
+ | |||
+ | The following example adds a new page and puts a <tt>TMemo</tt> on it: | ||
+ | <syntaxhighlight lang=Pascal>procedure TForm1.NewPageBtnClick(Sender: TObject); | ||
+ | var | ||
+ | newIndex: Integer; | ||
+ | begin | ||
+ | newIndex := Notebook1.Pages.Add('New Page'); // use plural! | ||
+ | with TMemo.Create(self) do | ||
+ | begin | ||
+ | Parent := Notebook1.Page[newIndex]; // use singular! | ||
+ | Align := alClient; | ||
+ | end; | ||
+ | end; </syntaxhighlight> | ||
==See also== | ==See also== |
Revision as of 20:29, 6 February 2021
│
English (en) │
français (fr) │
日本語 (ja) │
русский (ru) │
TNoteBook is a component that provides a container to hold a variety of controls arranged in pages, much like a real-world notebook. It is a descendant of TWinControl and is available under the Additional tab of the Component Palette.
Unlike TPageControl the TNotebook does not have tabs. All pages of the TNotebook are listed by the Pages property. At designtime the pages are listed in the object tree of the Object Inspector under the Notebook node; here the developer can easily switch from page to page. At runtime, special code must be provided to show a specific page; the PageIndex property determines which page is currently visible.
TNotebook can be used to create tabless, wizard-like dialogs in which "Forward"/"Backward" buttons are available to move from page to page:
procedure TForm1.ForwardBtnClick(Sender: TObject);
begin
if Notebook1.PageIndex < Notebook1.PageCount-1 then
Notebook1.PageIndex := Notebook1.PageIndex + 1;
end;
procedure TForm1.BackwardBtnClick(Sender: TObject);
begin
if Notebook1.PageIndex > 0 then
Notebook1.PageIndex := Notebook1.PageIndex - 1;
end;
Pages can be added at designtime by right-clicking on the TNotebook component and selecting Add Page from the context menu. Correspondingly a page can be removed here by the menu item Delete Page.
At runtime, a page is added by calling Notebook.Add('new pagename') with the name of the new page as parameter; the function returns the index of the new page. The new page itself can be addressed by using the property Notebook.Page[newindex] -- please note the singular here!
The following example adds a new page and puts a TMemo on it:
procedure TForm1.NewPageBtnClick(Sender: TObject);
var
newIndex: Integer;
begin
newIndex := Notebook1.Pages.Add('New Page'); // use plural!
with TMemo.Create(self) do
begin
Parent := Notebook1.Page[newIndex]; // use singular!
Align := alClient;
end;
end;
See also