新建 StandAlone Application 工程後, 再通過 File > New > Other.. > IntraWeb > New Form 添加兩個窗體.
然後 TIWForm1 上放兩個 TIWButton, 在 TIWForm2 和 TIWForm3 上各放一個 TIWButton. 測試代碼用到三個窗體的 OnCreate 和每個按鈕的 OnClick 事件.
uses ServerController, Unit2, Unit3; procedure TIWForm1.IWAppFormCreate(Sender: TObject); begin IWServerController.HistoryEnabled := True; //使浏覽器後退、前進按鈕有效 IWButton1.Caption := 'IWForm2'; IWButton2.Caption := 'IWForm3'; end; procedure TIWForm1.IWButton1Click(Sender: TObject); begin TIWForm2.Create(WebApplication).Show; //建立並顯示 TIWForm2; 執行後 WebApplication.ActiveForm 就從 TIWForm1 變為 TIWForm2 end; procedure TIWForm1.IWButton2Click(Sender: TObject); begin TIWForm3.Create(WebApplication).Show; // end; initialization TIWForm1.SetAsMainForm; //這是 TIWAppForm 的 Class 方法; 其作用是建立並設置當前窗口為主窗口(其實在 IW 中只有 ActiveForm, 無所謂 MainForm ) //當然也同樣設置其他窗體是首先被激活的窗體
procedure TIWForm2.IWAppFormCreate(Sender: TObject); begin IWButton1.Caption := Name; //只是用不同的標題區別一下 end; procedure TIWForm2.IWButton1Click(Sender: TObject); begin Release; //釋放後, TIWForm1 就出來了, 達到了返回的目的 //為什麼 IW 提倡使用 Release 而不是通常的 Free 呢? //我經過測試發現, Release 和 Free 是有區別的; 官方資料中介紹: IWApp;ication 內部還維護著一個 FReleasedForms 列表. end;
procedure TIWForm3.IWAppFormCreate(Sender: TObject); begin IWButton1.Caption := Name; end; procedure TIWForm3.IWButton1Click(Sender: TObject); begin Release; end;