一,新建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,超級簡單的完成了登錄過程,並且將當前登錄用戶傳遞到了主程序窗口。