Question:
Is there any way to reduce the resource requirements of the
TNotebook and TTabbedNotebook components?
Answer:
Yes. It is possible to reduce the requirements of the pages in the
TNotebook and TTabbedNotebook components by destroying the handles of
the components that are not on the current page. The following
example demonstrates calling the protected DestroyHandle method of the
page, by subclassing the notebook to get access to the protected
method.
type TMyTabbedNotebook = class(TTabbedNotebook);
type TMyNotebook = class(TNotebook);
procedure TForm1.TabbedNotebook1Change(Sender: TObject;
NewTab: Integer;
var AllowChange: Boolean);
begin
with TabbedNotebook1 do
TMyTabbedNotebook(
TWinControl(Pages.Objects[PageIndex])).DestroyHandle;
end;
procedure TForm1.TabSet1Change(Sender: TObject; NewTab: Integer;
var AllowChange: Boolean);
begin
with Notebook1 do
TMyNotebook(TWinControl(Pages.Objects[PageIndex])).DestroyHandle;
NoteBook1.PageIndex := NewTab;
AllowChange := true
end;