📄 userlogin.pas
字号:
unit UserLogin;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, Mask, Inifiles;
type
TDfmUserLogin = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Image1: TImage;
Label4: TLabel;
UserNameEdit: TEdit;
Button1: TButton;
Button2: TButton;
UserPasswordEdit: TMaskEdit;
Button3: TButton;
Button4: TButton;
ServerNameEdit: TComboBox;
Timer1: TTimer;
procedure FormShow(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
ConfirmIdentify: Boolean;
UserName: string;
UserPassword: string;
ServerName: string;
CloseApp: Boolean;
NotYesPSW: Boolean;
end;
procedure SetWork;
implementation
uses Main, RC_ReadRightClass, PublicUnit;
{$R *.dfm}
procedure SetWork;
var
DfmUserLogin: TDfmUserLogin;
begin
Application.CreateForm(TDfmUserLogin, DfmUserLogin);
DfmUserLogin.UserNameEdit.Text := PublicUnit.UserName;
DfmUserLogin.ShowModal;
if DfmUserLogin.ConfirmIdentify then
begin
PublicUnit.UserName := DfmUserLogin.UserNameEdit.Text;
PublicUnit.ServerName := DfmUserLogin.ServerNameEdit.Text;
end;
DfmUserLogin.Free;
end;
{------------------------------------------------------------------------------}
procedure TDfmUserLogin.FormShow(Sender: TObject);
var
ti: TIniFile;
ServerCount, i: integer;
AServer: string;
begin
ConfirmIdentify := False;
ServerName := '';
UserName := '';
UserPassword := '';
CloseApp := False;
ServerNameEdit.Items.Clear;
ti := TIniFile.Create(ExtractFilePath(Application.ExeName) + 'System.ini');
UserNameEdit.Text := ti.ReadString('System', 'LastUser', '访问者');
ServerCount := ti.ReadInteger('System', 'DBServerCount', 0);
if ServerCount <> 0 then
for i := 1 to ServerCount do
begin
AServer := ti.ReadString('DBServer', 'DBServer' + IntToStr(i), '');
ServerNameEdit.Items.Add(AServer);
end;
ti.Free;
UserNameEdit.Focused;
if ServerCount <> 0 then
ServerNameEdit.ItemIndex := 0;
end;
procedure TDfmUserLogin.Button1Click(Sender: TObject);
var
Function_DB_ReadRight: TFunction_DB_ReadRight;
UserResult: integer;
RightUserPassWord: string;
ti: TIniFile;
begin
if UserNameEdit.Text = '' then
begin
ShowMessage('请输入用户名称!');
NotYesPSW := True;
Exit;
end;
if ((UserPasswordEdit.Text = '') and (UserNameEdit.Text <> '访问者')) then
begin
ShowMessage('请输入用户密码!');
NotYesPSW := True;
Exit;
end;
if ServerNameEdit.Text = '' then
begin
ShowMessage('请输入服务器名称!');
NotYesPSW := True;
Exit;
end;
Screen.Cursor := crHourGlass;
Refresh;
UserName := UserNameEdit.Text;
UserPassWord := UserPasswordEdit.Text;
ServerName := ServerNameEdit.Text;
if not CheckDBServer(ServerName) then
begin
NotYesPSW := True;
Exit;
end;
Function_DB_ReadRight := TFunction_DB_ReadRight.ACreate(Owner, ServerName);
Function_DB_ReadRight.UserOrUserGroupName := UserName;
Function_DB_ReadRight.UserOrUserGroupIdentify := '用户';
RightUserPassWord := Function_DB_ReadRight.GetUserPassword(UserResult);
if UserResult <> 1 then
begin
Screen.Cursor := crDefault;
NotYesPSW := True;
MessageDlg('此用户名不是合法的用户名,请重新输入!', mtInformation, [mbOk],
0);
Function_DB_ReadRight.Free;
Exit;
end;
if Trim(LowerCase(UserPassword)) <> Trim(LowerCase(RightUserPassWord)) then
begin
Screen.Cursor := crDefault;
NotYesPSW := True;
MessageDlg('密码错误,请重新输入!', mtInformation, [mbOk], 0);
Function_DB_ReadRight.Free;
Exit;
end;
Function_DB_ReadRight.Free;
ConfirmIdentify := True;
ModalResult := mrOK;
ti := TIniFile.Create(ExtractFilePath(Application.ExeName) + 'System.ini');
ti.WriteString('System', 'LastUser', UserNameEdit.Text);
ti.Free;
Close;
Screen.Cursor := crDefault;
end;
procedure TDfmUserLogin.Button2Click(Sender: TObject);
begin
NotYesPSW := True;
Close;
end;
procedure TDfmUserLogin.Button3Click(Sender: TObject);
begin
MessageDlg('请输入有效的用户名、相应的口令及数据库服务器名称!', mtInformation,
[mbOk], 0);
end;
procedure TDfmUserLogin.Button4Click(Sender: TObject);
begin
CloseApp := True;
NotYesPSW := True;
Close;
end;
procedure TDfmUserLogin.Timer1Timer(Sender: TObject);
begin
FlashWindow(Handle, True);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -