Control designer pages visible / non-visible at runtime
RB 22.06, Delphi 12.2
The following code no longer works. Now all pages are visible regardless. In the past it allowed runtime control of which pages were visible. What is the best ways to make pages visible / non-visible at runtime?
procedure TfrmRBuilder.ppDesigner1Show(Sender: TObject);
if CurrentAccess='N' then
begin
TppDesignerWindow(ppDesigner1.Form).Notebook.Pages[0].Visible :=False;
TppDesignerWindow(ppDesigner1.Form).Notebook.Pages[1].Visible :=False;
TppDesignerWindow(ppDesigner1.Form).Notebook.Pages[2].Visible :=False;
TppDesignerWindow(ppDesigner1.Form).Notebook.Pages[0].Enabled :=False;
TppDesignerWindow(ppDesigner1.Form).Notebook.Pages[1].Enabled :=False;
TppDesignerWindow(ppDesigner1.Form).Notebook.Pages[2].Enabled :=False;
end
else if CurrentAccess='R' then
begin
TppDesignerWindow(ppDesigner1.Form).Notebook.Pages[0].Visible :=False;
TppDesignerWindow(ppDesigner1.Form).Notebook.Pages[1].Visible :=False;
TppDesignerWindow(ppDesigner1.Form).Notebook.Pages[2].Visible :=True;
TppDesignerWindow(ppDesigner1.Form).Notebook.Pages[0].Enabled :=False;
TppDesignerWindow(ppDesigner1.Form).Notebook.Pages[1].Enabled :=False;
TppDesignerWindow(ppDesigner1.Form).Notebook.Pages[2].Enabled :=True;
end
else
begin
TppDesignerWindow(ppDesigner1.Form).Notebook.Pages[0].Visible :=True;
TppDesignerWindow(ppDesigner1.Form).Notebook.Pages[1].Visible :=True;
TppDesignerWindow(ppDesigner1.Form).Notebook.Pages[2].Visible :=True;
TppDesignerWindow(ppDesigner1.Form).Notebook.Pages[0].Enabled :=True;
TppDesignerWindow(ppDesigner1.Form).Notebook.Pages[1].Enabled :=True;
TppDesignerWindow(ppDesigner1.Form).Notebook.Pages[2].Enabled :=True;
end;
TppDesignerWindow(ppDesigner1.Form).Notebook.Pages[1].Visible :=vRapOn;
end;
The following code no longer works. Now all pages are visible regardless. In the past it allowed runtime control of which pages were visible. What is the best ways to make pages visible / non-visible at runtime?
procedure TfrmRBuilder.ppDesigner1Show(Sender: TObject);
if CurrentAccess='N' then
begin
TppDesignerWindow(ppDesigner1.Form).Notebook.Pages[0].Visible :=False;
TppDesignerWindow(ppDesigner1.Form).Notebook.Pages[1].Visible :=False;
TppDesignerWindow(ppDesigner1.Form).Notebook.Pages[2].Visible :=False;
TppDesignerWindow(ppDesigner1.Form).Notebook.Pages[0].Enabled :=False;
TppDesignerWindow(ppDesigner1.Form).Notebook.Pages[1].Enabled :=False;
TppDesignerWindow(ppDesigner1.Form).Notebook.Pages[2].Enabled :=False;
end
else if CurrentAccess='R' then
begin
TppDesignerWindow(ppDesigner1.Form).Notebook.Pages[0].Visible :=False;
TppDesignerWindow(ppDesigner1.Form).Notebook.Pages[1].Visible :=False;
TppDesignerWindow(ppDesigner1.Form).Notebook.Pages[2].Visible :=True;
TppDesignerWindow(ppDesigner1.Form).Notebook.Pages[0].Enabled :=False;
TppDesignerWindow(ppDesigner1.Form).Notebook.Pages[1].Enabled :=False;
TppDesignerWindow(ppDesigner1.Form).Notebook.Pages[2].Enabled :=True;
end
else
begin
TppDesignerWindow(ppDesigner1.Form).Notebook.Pages[0].Visible :=True;
TppDesignerWindow(ppDesigner1.Form).Notebook.Pages[1].Visible :=True;
TppDesignerWindow(ppDesigner1.Form).Notebook.Pages[2].Visible :=True;
TppDesignerWindow(ppDesigner1.Form).Notebook.Pages[0].Enabled :=True;
TppDesignerWindow(ppDesigner1.Form).Notebook.Pages[1].Enabled :=True;
TppDesignerWindow(ppDesigner1.Form).Notebook.Pages[2].Enabled :=True;
end;
TppDesignerWindow(ppDesigner1.Form).Notebook.Pages[1].Visible :=vRapOn;
end;
Comments
After the redesign of the report designer (around the release of RB 10) it is no longer necessary to typecast the Form property or use it to access the Notebook object.
Use the TppDesigner.Notebook.SetTabVisible() routine to toggle tab visibility.
https://rbwiki.digital-metaphors.com/end-user/designer/how-to-hide-notebook-tab
Nico Cizik
Digital Metaphors
http://www.digital-metaphors.com