文档章节

使用 IntraWeb (5) - 页面布局之 TFrame

涂孟超
 涂孟超
发布于 2014/09/26 15:37
字数 497
阅读 23
收藏 0

IW 对 TFrame(还是之前那个), 这在页面布局中很有用.

如果多个页面都有一个共同的部分(譬如页眉、页脚、菜单、边栏等), 可以将这些共同的部分放在一个 TFrame 中, 从而方便统一与修改.

IW 也对 TMainMenu 提供了支持, 本例就做一个共享的菜单吧.

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


新建的 TIWFrame1 中, 已自动添加了一个 IWFrameRegion(TIWRegion), 先选一下 IWFrameRegion(控件要放在它上面);

然后分别添加 TIWMenu、TMainMenu(TMainMenu 要附加在 TIWMenu 使用).


之后的工作在设计时完成比较简单, 这里全部是用代码实现的.

双击 Frame 窗体写代码(因为 TFrame 没有 OnCreate 事件, 所以它使用的是 IWFrameRegion.OnCreate):

unit Unit2;

interface

uses
  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 以方便其他窗口(页面)调用.


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

本文转载自:http://www.cnblogs.com/del/p/3766617.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
私信 提问
界面控件包TMS IntraWeb Component Pack Pro Script Edition发布v5.8.8.1

TMS IntraWeb Component Pack Pro Script Edition允许从Delphi IDE直接在IntraWeb表格上编辑设计期间的网页。IntraWeb的TMS控件允许以RAD方法用Delphi进行网页应用程序的开发。这使得网页开发...

Harriet666
2017/10/20
0
0
解决Caused by: java.sql.SQLRecoverableException: IO Error: Connection reset相关问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/majian_1987/article/details/18598589 java.sql.SQLException: Io 异常: Connection reset 当数据库连接池中...

大饼卷馒头蘸米饭
2014/01/21
0
0
delphi - Property OldCreateOrder does not exist

原文见“http://www.cnblogs.com/sonicit/archive/2008/03/30/1129586.html” 说明:看了上面那位兄台的解法后,还是有些不明所以,不明白他说的最后一句话——”那么解决方法很简单,创建一...

geek_loser
2014/08/14
0
0
使用delphi 开发 web(一) webbroke 简介

从delphi 3 开始,就可以支持使用webbroke 技术开发基于web 服务器。当时主要是支持CGI和ISAPI. CGI 其实就是一个类似控制台的可执行程序,将其放入web 服务器的可执行目录,每次web 服务器调...

xalion
2012/01/04
0
0
delphi - 为 Frame 添加 OnShow 事件响应函数.

更具体的说明可以参看以下两处: http://manztiara.wordpress.com/2009/10/06/delphi-frame-whats-going-on/ http://www.delphifr.com/codes/TFRAME-ONSHOW-ONHIDE51610.aspx 这里只把我实现的......

sailtseng
2012/06/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

漏洞防御与修复工作

漏洞管理工作是企业安全建设必不可少的一环,在风险管理工作中,漏洞管理能够防患于未然,企业对漏洞管理有着广泛的基础建设和实践经验。但随着攻防技术的发展,传统漏洞管理的安全技术和管理...

linuxprobe16
56分钟前
1
0
MicroPython技术及应用前景

1 Micropython技术是什么? MicroPython极精简高效的实现了Python3语言。它包含Python标准库的一小部分,能在单片机和受限环境中运行。 1.1 MicroPython发展 由剑桥大学的理论物理学家乔治....

bodasisiter
今天
4
0
跟我学Spring Cloud(Finchley版)-13-通用方式使用Hystrix

本节详细讲解使用Hystrix的通用方式。 简介 Hystrix是由Netflix开源的一个延迟和容错库,用于隔离访问远程系统、服务或者第三方库,防止级联失败,从而提升系统的可用性与容错性。Hystrix主要...

周立_ITMuch
今天
2
0
🛠️Hanjst/汉吉斯特更新加JavaScript运行时优化等

这是 Hanjst/汉吉斯特 发布以来的首个主要升级更新版本。这次的主要升级更新的内容包括移除HTML Comments注释行, 优化在 Hanjst include模板文件时的JavaScript运行时环境。 Hanjst 在设计和...

wadelau
今天
3
0
OSChina 周六乱弹 —— 舔狗是没有好下场的

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @我没有抓狂 :#今天听什么# #今天听这个# 分享 Nirvana 的歌曲《Smells Like Teen Spi...》 《Smells Like Teen Spi...》- Nirvana 手机党少...

小小编辑
今天
602
14

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部