我有一个简单的IntraWeb测试项目,我的Unit 1有一个包含3个区域的IWform:页眉、正文和页脚如下:
type
TIWForm1 = class(TIWAppForm)
Body_Region: TIWRegion;
Header_Region: TIWRegion;
Footer_Region: TIWRegion;
public
end;
implementation
{$R *.dfm}
initialization
TIWForm1.SetAsMainForm;
end.
我的单元2和单元3是IWFrame,它们只有一个按钮,如下所示:
type
TIWFrame2 = class(TFrame)
IWFrameRegion: TIWRegion;
Button1: TButton;
private
{ Private declarations }
public
{ Public declarations }
end;
implementation
{$R *.dfm}
end.
(装置3与装置2相同)
现在,我可以在设计时轻松地将框架分配给身体区域,方法是将框架从工具板拖放到该区域。
问题是如何在运行时将其更改为unit 3 Frame?
如果我试着把它像这样加到类型部分
type
TIWForm1 = class(TIWAppForm)
Body_Region: TIWRegion;
Header_Region: TIWRegion;
Footer_Region: TIWRegion;
MyFram2: TIWFrame2; // added here
procedure IWAppFormShow(Sender: TObject);
public
end;
系统尝试删除它!
如果我强行把它作为
Body_Region.Parent := MyFram2;
我在身体部位什么也没发现!
如果我在设计时手动添加它,我会得到相同的声明,我可以让它工作,但我不能更改它!
我是否遗漏了什么,还是不可能做到?
顺便说一句,我在 Delphi 柏林10.1和IW14.1.12。
1条答案
按热度按时间ef1yzkbh1#
“删除”声明的字段不是IntraWeb的事情,而是 Delphi 的一个“特性”。在一个“private”节中这样声明它,否则它将被视为已发布:
删除OnShow事件并使用OnCreate事件。在OnCreate事件中创建框架示例,如下所示:
然后,您可以设置Frame.IWFrameRegion可见性,使一个可见,另一个不可见,如上所示。