使用 IntraWeb (5) - 頁面佈局之 TFrame

IW 對 TFrame(仍是以前那個), 這在頁面佈局中頗有用.

若是多個頁面都有一個共同的部分(譬如頁眉、頁腳、菜單、邊欄等), 能夠將這些共同的部分放在一個 TFrame 中, 從而方便統一與修改.

IW 也對 TMainMenu 提供了支持, 本例就作一個共享的菜單吧.佈局



新建工程後, 添加一個 New Frame:spa




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

而後分別添加 TIWMenu、TMainMenu(TMainMenu 要附加在 TIWMenu 使用).設計




以後的工做在設計時完成比較簡單, 這裏所有是用代碼實現的.

雙擊 Frame 窗體寫代碼(由於 TFrame 沒有 OnCreate 事件, 因此它使用的是 IWFrameRegion.OnCreate):orm


 

 
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 以方便其餘窗口(頁面)調用.blog




而後就和添加其餘控件同樣, 從 Tool Palette 把剛剛製做的 TIWFrame1Template 添加到頁面就成了.事件

相關文章
相關標籤/搜索