unigui使用之---系統登錄窗口使用


一,新建unigui項目,一切選默認

   




二,數據庫方面準備,這裏我們使用unidac連接oracle數據庫,並在數據裏面準備一個用戶表

      create table user_t (username varchar2(20),password varchar2(20),cdate date default sysdate);

       insert into user_t(username,password) values('u1','p1');

       insert into user_t(username,password) values('u2','p2');

       insert into user_t(username,password) values('u3','p3');

三,在mainmodule進行數據庫連接的設定,如下圖


四,新建unigui窗體,如下圖

  

注意下面的選項,確認爲登錄窗口選項


然後在窗口上面放以下的控件,完成後如下圖


登錄窗口中的代碼如下:


unit loginform_pas;


interface


uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics,
  Controls, Forms, uniGUITypes, uniGUIAbstractClasses,
  uniGUIClasses, uniGUIRegClasses, uniGUIForm, uniButton, uniLabel,
  uniGUIBaseClasses, uniEdit;


type
  TLoginForm = class(TUniLoginForm)
    UniEdit1: TUniEdit;
    UniLabel1: TUniLabel;
    UniLabel2: TUniLabel;
    UniEdit2: TUniEdit;
    UniButton1: TUniButton;
    UniButton2: TUniButton;
    procedure UniButton1Click(Sender: TObject);
    procedure UniButton2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;


function LoginForm: TLoginForm;


implementation


{$R *.dfm}


uses
  uniGUIVars, MainModule, uniGUIApplication;


function LoginForm: TLoginForm;
begin
  Result := TLoginForm(UniMainModule.GetFormInstance(TLoginForm));
end;


procedure TLoginForm.UniButton1Click(Sender: TObject);
begin
 if not UniMainModule.linkoracle.Connected  then
   UniMainModule.linkoracle.Connected:=true;
 with UniMainModule.login_u do
 begin
   close;
   sql.Clear;
   sql.Add('select count(*) as count from user_t where username=:na and password=:pa');
   ParamByName('na').Value := uniedit1.Text ;
   ParamByName('pa').Value := uniedit2.Text ;
   open;
   if fieldvalues['count']>0 then
   begin
     UniMainModule.user_name:=uniedit1.Text;
     self.ModalResult:=mrok;
   end
   else
   begin
     unisession.AddJS('alert("用戶名或密碼錯誤!");');
   end;
 end;
end;


procedure TLoginForm.UniButton2Click(Sender: TObject);
begin
  self.ModalResult:=mrcancel;
end;


initialization
  RegisterAppFormClass(TLoginForm);


end.




在MainModule單元中加入




main窗口的show事件中加入以下代碼 

  self.Caption :='當前登錄用戶爲:'+UniMainModule.user_name;


一切OK了,讓我們開始運行代碼,效果如下




ok,超級簡單的完成了登錄過程,並且將當前登錄用戶傳遞到了主程序窗口。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章