📄 f_login.pas
字号:
unit f_Login;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, SUIForm, StdCtrls, Mask, SUIEdit, DBCtrls, SUIDBCtrls,
DB, ADODB, SUIButton, Buttons, ScktComp, RzPrgres, RzDBCmbo;
type
Tfm_login = class(TForm)
Login: TsuiForm;
ds_Person: TDataSource;
Panel_Login: TPanel;
Label1: TLabel;
Pswd: TsuiEdit;
Label2: TLabel;
suiOK: TsuiButton;
suiCancel: TsuiButton;
Panel_ChagePassword: TPanel;
Label3: TLabel;
suiOldPswd: TsuiEdit;
Label4: TLabel;
suiNewPswd: TsuiEdit;
Label5: TLabel;
suiNewPswdAgain: TsuiEdit;
suiChangePswd: TsuiButton;
suiNoChange: TsuiButton;
ChangePswd: TsuiButton;
AddPeople: TsuiButton;
Panel_AddPerson: TPanel;
suiAddPersonOK: TsuiButton;
suiAddPersonCancel: TsuiButton;
suiNewPerson: TsuiEdit;
Label6: TLabel;
edt_password: TsuiDBEdit;
CS1: TClientSocket;
RzProgressBar1: TRzProgressBar;
cbb_id: TsuiDBLookupComboBox;
procedure suiOKClick(Sender: TObject);
procedure suiCancelClick(Sender: TObject);
procedure suiNoChangeClick(Sender: TObject);
procedure suiChangePswdClick(Sender: TObject);
procedure AddPeopleClick(Sender: TObject);
procedure ChangePswdClick(Sender: TObject);
procedure suiAddPersonOKClick(Sender: TObject);
procedure suiAddPersonCancelClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
PersonID: integer;
end;
var
fm_login: Tfm_login;
Allowlogin: boolean; //是否打开登录界面
implementation
uses F_RDB, f_md5, f_commfun;
{$R *.dfm}
procedure Tfm_login.suiOKClick(Sender: TObject);
var
psw: string;
begin
psw := MD5Print(MD5String(Pswd.Text + 'liniocensus'));
if psw = self.edt_password.Text then
begin
ModalResult := IDOK;
user.Name := RDB.dst_Person.FieldByName('username').AsString;
user.islogin:=True;
end
else
ModalResult := IDCancel;
end;
procedure Tfm_login.suiCancelClick(Sender: TObject);
begin
ModalResult := IDCancel;
end;
procedure Tfm_login.suiNoChangeClick(Sender: TObject);
begin
Panel_Login.BringToFront;
end;
procedure Tfm_login.suiChangePswdClick(Sender: TObject);
begin
if edt_password.Text <> MD5Print(MD5String(suiOldPswd.Text)) then
begin
showmessage('原始密码错误!');
exit;
end;
if suiNewPswd.Text <> suiNewPswdAgain.Text then
begin
showmessage('两次密码输入不一致!');
exit;
end;
RDB.dst_Person.Edit;
RDB.dst_Person.FieldByName('password').AsString :=
MD5Print(MD5String(suiNewPswd.Text + 'liniocensus'));
RDB.dst_Person.Post;
RDB.dst_Person.UpdateBatch(arAll);
Panel_Login.BringToFront;
end;
procedure Tfm_login.AddPeopleClick(Sender: TObject);
begin
Panel_AddPerson.BringToFront;
end;
procedure Tfm_login.ChangePswdClick(Sender: TObject);
begin
Panel_ChagePassword.BringToFront;
end;
procedure Tfm_login.suiAddPersonOKClick(Sender: TObject);
var
tmp: string;
begin
if RDB.sql.Active then
RDB.sql.Active:=False;
RDB.sql.SQL.Clear;
tmp := 'Select * From Admin Where username=''' + suiNewPerson.Text + '''';
RDB.sql.SQL.Add(tmp);
RDB.sql.Active:=True;
RDB.sql.First;
if not RDB.sql.Eof then
begin
showmessage('用户名已被占用!');
exit;
end;
if not RDB.dst_Person.Active then
RDB.dst_Person.Active:=true;
RDB.dst_Person.Insert;
RDB.dst_Person.FieldByName('username').AsString := suiNewPerson.Text;
RDB.dst_Person.FieldByName('password').AsString := MD5Print(MD5String(Pswd.Text
+ 'liniocensus'));
RDB.dst_Person.Post;
RDB.dst_Person.UpdateBatch(arAll);
ShowMessage('新加用户成功!');
end;
procedure Tfm_login.suiAddPersonCancelClick(Sender: TObject);
begin
Panel_Login.BringToFront;
end;
procedure Tfm_login.FormCreate(Sender: TObject);
begin
if RDB.dst_PSN.Active = false then
RDB.dst_PSN.Active := True;
if RDB.dst_Person.Active = false then
RDB.dst_Person.Active := True;
Panel_Login.BringToFront;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -