uniGUI下有專用的登錄窗體類:TUniLoginForm,該類屬於AppForm,構建代碼為:
function frmWebLogin: TfrmWebLogin; begin Result := TfrmWebLogin(dmWebMain.GetFormInstance(TfrmWebLogin)); end;
系統中如果存在登錄窗體,則首先顯示該窗體,當登錄窗體返回不同ModuleResult值時,代表不同含義:
ModalResult := mrOk; //表示登錄成功,顯示主窗體 ModalResult := mrCancel; //表示登錄失敗,退出程序
當主窗體返回不同ModuleResult值時,也有不同含義:
ModalResult := mrOk; //表示登出,關閉主窗體,顯示登錄窗體 ModalResult := mrCancel; //表示退出程序
uniGUI有2種窗體模式,一種是AppForm,一種是FreeForm,前者由uniApplication進行實例管理,后者需要程序員自己管理。
AppForm需要先注冊:
initialization RegisterAppFormClass(TfrmWebxxx);
然后通過TUniGUIMainModule進行創建,代碼示例如下:
var frm : TfrmWebxxx; begin frm := TfrmWebxxx(MainModule.GetFormInstance(TfrmWebxxx)); frm.Show;
FreeForm不需要注冊,同VCL中的窗體一樣,可以直接創建,如:
var frm : TfrmWebxxx; begin frm := TfrmWebxxx.create(self); frm.Show;
無論是AppForm還是FreeForm,在創建后都不需要手動釋放,由系統自動釋放。這不太符合Delphi的編程習慣,AppForm還說得過去,但FeeForm就有點不合適了,但是確實存在手工釋放報錯的情況,所以不建議在uniGUI中使用FreeForm。