博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用 IntraWeb (5) - 页面布局之 TFrame
阅读量:4622 次
发布时间:2019-06-09

本文共 2726 字,大约阅读时间需要 9 分钟。

IW 对 TFrame(还是之前那个), 这在页面布局中很有用.
如果多个页面都有一个共同的部分(譬如页眉、页脚、菜单、边栏等), 可以将这些共同的部分放在一个 TFrame 中, 从而方便统一与修改.
IW 也对 TMainMenu 提供了支持, 本例就做一个共享的菜单吧.

新建工程后, 添加一个 New Frame:

o_w51.png

新建的 TIWFrame1 中, 已自动添加了一个 IWFrameRegion(TIWRegion), 先选一下 IWFrameRegion(控件要放在它上面);
然后分别添加 TIWMenu、TMainMenu(TMainMenu 要附加在 TIWMenu 使用).

o_w52.png

之后的工作在设计时完成比较简单, 这里全部是用代码实现的.
双击 Frame 窗体写代码(因为 TFrame 没有 OnCreate 事件, 所以它使用的是 IWFrameRegion.OnCreate):

unit Unit2;interfaceuses  SysUtils, Classes, Controls, Forms, IWVCLBaseContainer, IWColor, IWContainer, IWRegion, Vcl.Menus,  IWVCLBaseControl, IWBaseControl, IWBaseHTMLControl, IWControl, IWCompMenu, IWHTMLContainer, IWHTML40Container;type  TIWFrame1 = class(TFrame)    IWFrameRegion: TIWRegion;    IWMenu1: TIWMenu;    MainMenu1: TMainMenu;    procedure IWFrameRegionCreate(Sender: TObject);    procedure MyOnClick(Sender: TObject);  private    { Private declarations }  public    { Public declarations }  end;implementation{$R *.dfm}uses IWInit; //为使用 WebApplication{给子菜单准备的点击事件}procedure TIWFrame1.MyOnClick(Sender: TObject);begin  WebApplication.ShowMessage(TMenuItem(Sender).Caption);end;procedure TIWFrame1.IWFrameRegionCreate(Sender: TObject);var  mItemA, mItemB, mItem: TMenuItem;begin  {提前设定这个 Frame 在其他容器中的位置与大小}  Align := alTop;  Height := IWMenu1.Height;  {设置 IWMenu1}  IWMenu1.Align := alTop;  IWMenu1.AttachedMenu := MainMenu1; //关键代码  IWMenu1.SubMenuStyle.BGColor := clWebWHITESMOKE;  IWMenu1.SubMenuStyle.BorderColor := clWebWHITESMOKE;  IWMenu1.SubMenuStyle.ItemBGColor := clWebWHITESMOKE;  IWMenu1.SubMenuStyle.DisabledItemBGColor := clWebWHITESMOKE;  IWMenu1.SubMenuStyle.SelectedItemBGColor := clWebWHEAT;  {设置 IWFrameRegion}  IWFrameRegion.ClipRegion := False; //关键代码  IWFrameRegion.Height := IWMenu1.Height;  {建立菜单, 这在设计时很容易}  mItemA := MainMenu1.CreateMenuItem;  mItemA.Caption := 'Menu A';  MainMenu1.Items.Add(mItemA);  mItemB := MainMenu1.CreateMenuItem;  mItemB.Caption := 'Menu B';  mItemB.OnClick := MyOnClick;  MainMenu1.Items.Add(mItemB);    mItem := MainMenu1.CreateMenuItem;    mItem.Caption := 'Menu A1';    mItem.OnClick := MyOnClick;    mItemA.Add(mItem);    mItem := MainMenu1.CreateMenuItem;    mItem.Caption := '-';    mItemA.Add(mItem);    mItem := MainMenu1.CreateMenuItem;    mItem.Caption := 'Menu A2';    mItemA.Add(mItem);      mItemA := mItem;      mItem := MainMenu1.CreateMenuItem;      mItem.Caption := 'Menu A21';      mItem.OnClick := MyOnClick;      mItemA.Add(mItem);      mItem := MainMenu1.CreateMenuItem;      mItem.Caption := 'Menu A22';      mItem.OnClick := MyOnClick;      mItemA.Add(mItem);end;end.

按下面图示操作, 把刚才制作的 Frame 添加到 Tool Palette 以方便其他窗口(页面)调用.

o_w53.png

然后就和添加其他控件一样, 从 Tool Palette 把刚刚制作的 TIWFrame1Template 添加到页面就成了.

o_w54.png

转载于:https://www.cnblogs.com/del/p/3766617.html

你可能感兴趣的文章
PHP中获取当前页面的完整URL
查看>>
所谓输入掩码技术,即只有数字键起作用
查看>>
Display对象,Displayable对象
查看>>
安装oracle11G,10G时都会出现:注册ocx时出现OLE初始化错误或ocx装载错误对话框
查看>>
生产环境下正则的应用实例(一)
查看>>
在CentOS7命令行模式下安装虚拟机
查看>>
Arduino可穿戴开发入门教程Arduino开发环境介绍
查看>>
Windows平台flex+gcc词法分析实验工具包
查看>>
3.Python基础 序列sequence
查看>>
Chapter 4 Syntax Analysis
查看>>
vi/vim使用
查看>>
讨论Spring整合Mybatis时一级缓存失效得问题
查看>>
Maven私服配置Setting和Pom文件
查看>>
Linux搭建Nexus3.X构建maven私服
查看>>
NPOI 操作Excel
查看>>
MySql【Error笔记】
查看>>
vue入门
查看>>
JS线程Web worker
查看>>
Flex的动画效果与变换!(三)(完)
查看>>
mysql常见错误码
查看>>