📄 frmlogin.~pas
字号:
unit FrmLogin;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, jpeg, StdCtrls, Buttons, ShellAPI, IniFiles,
cxLookAndFeelPainters, cxButtons, ComCtrls, AdvPageControl, AdvEdit,
AdvEdBtn, ADODB;
type
TLogin = class(TForm)
Image1: TImage;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
lbl3: TLabel;
GroupBox1: TGroupBox;
Label2: TLabel;
Label1: TLabel;
cxButton4: TcxButton;
cxButton5: TcxButton;
CheckBox1: TCheckBox;
Edit1: TEdit;
ComboBox1: TComboBox;
DataPathEdt: TUnitAdvEditBtn;
cxButton1: TcxButton;
procedure Label3MouseLeave(Sender: TObject);
procedure Label3MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure Label3Click(Sender: TObject);
procedure cxButton5Click(Sender: TObject);
procedure cxButton4Click(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure DataPathEdtClickBtn(Sender: TObject);
procedure cxButton1Click(Sender: TObject);
procedure ComboBox1KeyPress(Sender: TObject; var Key: Char);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
public
class function CreateLogin:Boolean; //创建登陆窗体
class function ReadConfig:Boolean; //读取配置文件
function WriteConfig:Boolean; //写入配置文件
procedure SelectUser; //读取税务员
{ Public declarations }
end;
var
Login: TLogin;
implementation
uses
FrmCustom, FrmData;
{$R *.dfm}
{ TLogin }
class function TLogin.CreateLogin: Boolean;
begin
try
Login:=TLogin.Create(Application);
Login.ShowModal;
if Login.ModalResult=mrOk then
Result:=True
else
Result:=False;
finally
Login.Free;
Login:=nil;
end;
end;
procedure TLogin.Label3MouseLeave(Sender: TObject);
begin
Label3.Font.Color:=clWhite;
Label3.Cursor:=crDefault;
end;
procedure TLogin.Label3MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
Label3.Font.Color:=clRed;
Label3.Cursor:=crHandPoint;
end;
procedure TLogin.Label3Click(Sender: TObject);
var
Address:string;
begin
Address:= HttpURL;
ShellExecute(Handle,'Open',PChar(Address),'','',SW_SHOW);
end;
procedure TLogin.cxButton5Click(Sender: TObject);
begin
if Application.MessageBox('你是否真的要退出', '贝壳提示', MB_YESNO +
MB_ICONWARNING + MB_DEFBUTTON3 + MB_TOPMOST) = IDYES then
begin
Application.Terminate;
end;
end;
procedure TLogin.cxButton4Click(Sender: TObject);
var
aSql: string;
begin
if Length(Trim(Edit1.Text))=0 then
begin
Application.MessageBox('密码不能为空! ', '贝壳提示', MB_OK +
MB_ICONWARNING + MB_DEFBUTTON3 + MB_TOPMOST);
Edit1.SetFocus;
Exit;
end;
with DataModule1 do
begin
ADOSelect.SQL.Clear;
aSql:='Select * From Admin Where 用户名 ='+QuotedStr(ComboBox1.Text)+' and 密码='
+QuotedStr(Edit1.Text);
ADOSelect.SQL.Add(aSql);
ADOSelect.Open;
if not ADOSelect.Eof then
begin
if ADOSelect.FieldByName('管理员')='是' then
IsAdmin:=True;
CurrenUser:=ComboBox1.Text;
Self.ModalResult:=mrOk;
end
else
begin
Application.MessageBox('密码错误! ', '贝壳提示', MB_OK +
MB_ICONWARNING + MB_DEFBUTTON3 + MB_TOPMOST);
edit1.Clear;
edit1.SetFocus;
end;
end;
end;
class function TLogin.ReadConfig: Boolean;
var
aFile:TIniFile;
begin
try
AppPath:=ExtractFilePath(Application.ExeName);
aFile:=TIniFile.Create(AppPath+'Config.Ini');
DataPath:=DecryStrHex(aFile.ReadString('Defaults','DataConfig',''),'yangjun');
finally
aFile.Free;
end;
end;
procedure TLogin.CheckBox1Click(Sender: TObject);
begin
if CheckBox1.Checked then
Login.Height:=279
else
Login.Height:=245;
end;
function TLogin.WriteConfig: Boolean;
var
aFile:TIniFile;
begin
Result:=False;
try
AppPath:=ExtractFilePath(Application.ExeName);
aFile:=TIniFile.Create(AppPath+'Config.Ini');
aFile.WriteString('Defaults','DataConfig',EncryStrhex(DataPathEdt.Text,
'yangjun'));
Result:=True;
finally
aFile.Free;
end;
end;
procedure TLogin.FormShow(Sender: TObject);
begin
Anti_DeDe; //防止DEDE高度
DumpLoaded;
IsDebug;
RegLoaded;
FileLoaded;
SoftIceXPLoaded;
CheckParentProc;//
IsAdmin:=False; //不是管理员
if DataPath='' then
begin
Application.MessageBox('请选择配置数据库! ', '贝壳提示', MB_OK +
MB_ICONWARNING + MB_DEFBUTTON3 + MB_TOPMOST);
CheckBox1.Checked:=True;
end
else
begin
DataPathEdt.Text:=DataPath;
with DataModule1 do
begin
try
ADOCon.ConnectionString:=DataPath; //连接数据库
ADOCon.Open;
SelectUser; //列出税务人员
except
Application.MessageBox('连接数据库错误! ', '贝壳提示', MB_OK +
MB_ICONWARNING + MB_DEFBUTTON3 + MB_TOPMOST);
end;
end;
end;
end;
procedure TLogin.DataPathEdtClickBtn(Sender: TObject);
begin
DataPathEdt.Text:=PromptDataSource(Handle,DataPathEdt.Text);
end;
procedure TLogin.cxButton1Click(Sender: TObject);
begin
if DataPathEdt.Text='' then
begin
DataPathEdt.OnClickBtn(Sender);
Exit;
end;
if WriteConfig then
begin
Application.MessageBox('配置成功!' + #13#10#13#10 + '现在重启程序!',
'贝壳提示', MB_OK + MB_ICONWARNING + MB_DEFBUTTON3 + MB_TOPMOST);
ShellExecute(handle,'Open',PChar(Application.ExeName),'','', SW_SHOWNORMAL);
Application.Terminate;
end
else
Application.MessageBox('配置失败! ', '贝壳提示', MB_OK + MB_ICONSTOP +
MB_DEFBUTTON3 + MB_TOPMOST);
end;
procedure TLogin.SelectUser;
begin
with DataModule1 do
begin
ComboBox1.Clear;
ADOSelect.SQL.Clear;
ADOSelect.SQL.Add('Select 用户名 From Admin');
ADOSelect.Open;
while not ADOSelect.Eof do
begin
ComboBox1.Items.Add(ADOSelect.Fields[0].AsString);
ADOSelect.Next;
end;
end;
end;
procedure TLogin.ComboBox1KeyPress(Sender: TObject; var Key: Char);
begin
if Key=#13 then
Edit1.SetFocus;
end;
procedure TLogin.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if Key=#13 then
cxButton4.Click;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -