UniGUI之Login窗口(10)透明


a1:Login窗口不能調用主窗口的控件,要用自己的控件。

a2:MainModule一刷新就跳回登錄界面,如何設置不跳?

a3unigui-登錄界面-透明 


 

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

然后再在界面上添加文本


MainModule一刷新就跳回登錄界面,如何設置不跳

  判斷登陸滿足登陸條件后, Handled 置為true,就不會再跳出登陸界面了


a3__unigui-登錄界面-透明

選中登錄form,

 unievents事件

 

function beforeInit(sender, config)
{
  config.cls='touming';
}

 然后再servermodule中設置

 customcss

 

 透明度為0.4

  

.touming
{
  opacity: 0.4;
}

 可以看到了透明的效果

 

uniMemo也可以 半透明 

 unicontentpanel 默認是透明的 

unipanel默認不是透明的。

 所以選中unicontentpanel作為容器組件。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM