📄 logindlgs.pas
字号:
unit logindlgs;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, Mask, StdCtrls,ExtCtrls, xpButton, xpCheckBox;
type
Tlogindlg = class(TForm)
Bevel1: TBevel;
Label1: TLabel;
Label2: TLabel;
userid: TEdit;
pwd: TMaskEdit;
xpButton1: TxpButton;
xpButton2: TxpButton;
CheckBox1: TCheckBox;
Label3: TLabel;
CheckBox2: TCheckBox;
Label4: TLabel;
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure pwdKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure xpButton2Click(Sender: TObject);
procedure xpButton1Click(Sender: TObject);
procedure createparams(var params:tcreateparams);override;
procedure useridKeyPress(Sender: TObject; var Key: Char);
procedure FormPaint(Sender: TObject);
procedure FormDblClick(Sender: TObject);
procedure Label3Click(Sender: TObject);
procedure Label4Click(Sender: TObject);
private
autoclose:boolean;
procedure userlogin;
procedure startstatus;
procedure clearstatus;
{ Private declarations }
public
{ Public declarations }
end;
var
logindlg: Tlogindlg;
implementation
uses udpcores,createusers,shareunit;
{$R *.DFM}
procedure Tlogindlg.createparams(var params:tcreateparams);
begin
inherited ;
Params.winclassname:='xychat';
end;
procedure Tlogindlg.FormCreate(Sender: TObject);
begin
udpcore.changeLayered(handle);
userid.text:=loginuser;
pwd.Text:='';
checkbox1.Checked:=loginpass<>'';
checkbox2.checked:=login_hide;
if checkbox1.Checked then userlogin;
end;
procedure tlogindlg.userlogin;
begin
startstatus;
login_hide:=checkbox2.checked;
if udpcore.user.login_checkpass(loginuser,loginpass) then
begin
clearstatus;
login_ok:=true;
autoclose:=true;
close;
end else begin
clearstatus;
showmessage('密码错误,或用户名不存在请重新输入.');
end;
end;
procedure Tlogindlg.FormShow(Sender: TObject);
begin
userid.SetFocus;
end;
procedure Tlogindlg.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
loginuser:=userid.text;
if not checkbox1.Checked then loginpass:='';
end;
//清除锁定状态...
procedure Tlogindlg.clearstatus;
begin
userid.enabled:=true;
pwd.Enabled:=true;
xpbutton1.Enabled:=true;
pwd.Text:='';
end;
//进入锁定状态...
procedure Tlogindlg.startstatus;
begin
userid.enabled:=false;
pwd.Enabled:=false;
xpbutton1.Enabled:=false;
end;
procedure Tlogindlg.pwdKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=13 then xpButton1.onclick(nil);
end;
procedure Tlogindlg.xpButton2Click(Sender: TObject);
begin
with tcreate_user.create(nil) do
try
showmodal;
finally
free;
end;
end;
procedure Tlogindlg.xpButton1Click(Sender: TObject);
begin
loginuser:=userid.text;
loginpass:=md5encode(loginuser+pwd.Text);
userlogin;
end;
procedure Tlogindlg.useridKeyPress(Sender: TObject; var Key: Char);
begin
If Key = #13 Then
Begin
If HiWord(GetKeyState(VK_SHIFT)) <> 0 then
SelectNext(Sender as TWinControl,False,True)
else
SelectNext(Sender as TWinControl,True,True);
Key := #0
end;
end;
procedure Tlogindlg.FormPaint(Sender: TObject);
begin
udpcore.formonpaint(self);
if autoclose then close;
end;
procedure Tlogindlg.FormDblClick(Sender: TObject);
begin
udpcore.changeskin;
repaint;
end;
procedure Tlogindlg.Label3Click(Sender: TObject);
begin
checkbox1.Checked:=not checkbox1.checked;
end;
procedure Tlogindlg.Label4Click(Sender: TObject);
begin
checkbox2.Checked:=not checkbox2.checked;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -