uniGUI试用笔记(四)

时间:2023-12-13 09:54:38

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。