a1:Login窗口不能調用主窗口的控件,要用自己的控件。
a2:MainModule一刷新就跳回登錄界面,如何設置不跳?

procedure TUniLoginForm1.UniLoginFormCreate(Sender: TObject); begin//數據庫連接 FDQuery2.Connection := FDConnection2; FDConnection2.LoginPrompt:=false; //取消登錄提示框 FDConnection2.Open('DriverID=SQLite;Database=test1.Sqlite3.db'); end; procedure TUniLoginForm1.UniButton1Click(Sender: TObject); begin//登錄 查詢 判斷 FDQuery2.Open(' select aid from aTable where UserName= ''' + UniEdit1.Text + ''' and UserPassword= ''' // 用戶名 + UniEdit2.Text // 密碼 + ''';'); if FDQuery2.RecordCount = 0 then begin ShowMessage('Incorrect Username or Password!') ; exit end;
在UniGUI的CHM幫助里讀到的。
一定要新建一個其他空白的工程,然后再添加LoginForm
LoginForm 是另一種特殊的表單類型, 僅用於登錄目的。



此操作將創建一個與常規窗體外觀相同的空白 LoginForm:

LoginForm 是一個名為 TUniLoginForm 的內置類的后代.每個應用程序只能有一個 LoginForm。 添加 LoginForm 后, 應用程序將在新會話開始時顯示此窗體。 您需要添加控件、事件處理程序和所需的所有內容, 以實現所需的功能。 登錄行為是使用窗體的 ModalResult 控制的。 如果 LoginForm 返回mrOK,則表示成功登錄, 將創建並激活新 MainForm。 當 ModalResult 返回 mrCancel 時, 它將終止會話。 如果我們使用只有兩個按鈕的表單 (一個用於成功登錄, 另一個用於失敗), 下面的代碼將執行以下操作:
procedure TUniLoginForm1.UniButton1Click(Sender: TObject); begin ModalResult := mrOK; // Login is valid so proceed to MainForm end; procedure TUniLoginForm1.UniButton2Click(Sender: TObject); begin ModalResult := mrCancel; // Invalid Login exit from app end;
一旦用戶登錄並顯示 MainForm, 就有兩種方法可以終止會話。 您可以終止會話並返回到 LoginForm, 將mrOK作為 ModalResult 返回, 或通過返回mrCancel終止會話。 出於安全原因, 現有會話總是在顯示 LoginForm 之前終止, 即每個新登錄都啟動一個新會話。
保存登錄信息七天。
if sameText(UniEdit1.Text, 'demo1') and sameText(UniEdit1.Text, 'demo1') then begin UniMainModule.LoggedUser := UniEdit1.Text; if UniCheckBox1.Checked then begin UniApplication.Cookies.SetCookie('_loginname', UniEdit1.Text, Date + 7.0); // Expires 7 days from now UniApplication.Cookies.SetCookie('_pwd', UniEdit2.Text, Date + 7.0); end; ModalResult := mrOK; end;
登錄背景圖片設置 :

如果LoginForm的背景要添加文本,兩個設置
1]BorderStyle設為bsNone
2]WindowState設為wsMaximized
然后再在界面上添加文本
?
判斷登陸滿足登陸條件后, Handled 置為true,就不會再跳出登陸界面了
選中登錄form,
unievents事件

function beforeInit(sender, config) { config.cls='touming'; }
然后再servermodule中設置
customcss

透明度為0.4
.touming { opacity: 0.4; }
可以看到了透明的效果

uniMemo也可以 半透明
unicontentpanel 默認是透明的
unipanel默認不是透明的。
所以選中unicontentpanel作為容器組件。
