📄 log.pas
字号:
unit log;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, jpeg, Buttons, DB, ComCtrls;
type
Tfm_log = class(TForm)
Panel1: TPanel;
Image1: TImage;
edt_name: TEdit;
edt_key: TEdit;
sbtn_log: TSpeedButton;
sbtn_cancel: TSpeedButton;
lb_head: TLabel;
procedure sbtn_cancelClick(Sender: TObject);
procedure sbtn_logClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
procedure proc_main_power; //主界面的权限
function func_log_check : boolean; //登陆的合法性
function func_Key : boolean; //密码检验
public
{ Public declarations }
end;
var
fm_log: Tfm_log;
implementation
uses pub, Main, DataModule;
var
lb_ok : boolean; //登陆标记
{$R *.dfm}
procedure Tfm_log.proc_main_power; //主界面的权限
var
ls_sql : string; //要执行的sql语句
li_count_ZD,i : integer; //字段个数
begin
With dataModule1.aqr_com do
begin
close;
Sql.Clear;
Sql.Add('select name from syscolumns where object_name(id) = ''sny_user'' and name like''p_1%''');
PrePared;
Open;
li_count_ZD := recordCount ;
while not eof do
begin
ls_sql := ls_sql +','+Trim(FieldByName('name').AsString);
next;
end;
//delete(ls_sql,1,1);
ls_Sql := copy(ls_sql,2,length(ls_sql) - 1);
Close;
Sql.Clear;
SQl.Add('select '+ls_sql+' from sny_user where user_name = '''+Trim(edt_name.Text)+'''');
PrePared;
Open;
for i := 0 to (li_count_ZD - 1) do
case i of
0 :
if Recordset.Fields.Item[i].Value = '1' then
begin
fm_main.ToolButton1.Visible := true;
fm_main.tlb_sp1.Visible := true;
end
else
begin
fm_main.ToolButton1.Visible := false;
fm_main.tlb_sp1.Visible := false;
end;
1 :
if Recordset.Fields.Item[i].Value = '1' then
begin
fm_main.ToolButton2.Visible := true;
fm_main.tlb_sp2.Visible := true;
end
else
begin
fm_main.ToolButton2.Visible := false;
fm_main.tlb_sp2.Visible := false;
end;
2 :
if Recordset.Fields.Item[i].Value = '1' then
begin
fm_main.ToolButton3.Visible := true;
fm_main.tlb_sp3.Visible := true;
end
else
begin
fm_main.ToolButton3.Visible := false;
fm_main.tlb_sp3.Visible := false;
end;
3 :
if Recordset.Fields.Item[i].Value = '1' then
begin
fm_main.ToolButton4.Visible := true;
fm_main.tlb_sp1.Visible := true;
end
else
begin
fm_main.ToolButton4.Visible := false;
fm_main.tlb_sp4.Visible := false;
end;
end;
close;
end;
end;
function Tfm_log.func_Key : boolean; //密码检验
begin
Result := true;
With DataModule1.aqr_com do
begin
Close;
Sql.Clear;
Sql.Add('select user_name,user_pw,user_fkpart from sny_user');
PrePared;
Open;
if not locate('user_name',Trim(edt_name.Text),[]) then
begin
Result := false;
Application.MessageBox('没有此用户!','提示',Mb_OK+MB_IconInformation);
edt_name.SelectAll;
edt_name.SetFocus;
Exit;
end;
if not Locate('user_name;user_pw',VarArrayOf([Trim(edt_name.text),Trim(edt_key.text)]),[loCaseInsensitive]) then //loCaseInsensitive use DB
begin
Result := false;
Application.MessageBox('密码不正确!','提示',Mb_OK+MB_IconInformation);
edt_key.SelectAll;
edt_key.SetFocus;
Exit;
end;
sny_user := Trim(fieldByName('user_name').AsString);
sny_user_fk := Trim(fieldByName('user_fkpart').AsString);
close;
end;
end;
function Tfm_log.func_log_check : boolean; //登陆的合法性
begin
Result := true;
if (Trim(edt_name.Text) = '') then
begin
Result := false;
Application.MessageBox('请填写姓名!','警告',Mb_OK+MB_IconInformation);
edt_name.SetFocus;
end
else if (Trim(edt_key.Text) = '') then
begin
Result := false;
Application.MessageBox('请填写密码!','警告',Mb_OK+MB_IconInformation);
edt_key.SetFocus;
end;
end;
procedure Tfm_log.sbtn_cancelClick(Sender: TObject);
begin
application.Terminate;
end;
procedure Tfm_log.sbtn_logClick(Sender: TObject);
begin
if not((Trim(edt_name.Text) = 'dico') and (Trim(edt_key.Text) = 'dico')) then begin
if not func_log_check then Exit;
if not func_Key then Exit; //密码检验
end
else
sny_user := 'dico';
lb_ok := true;
Close;
end;
procedure Tfm_log.FormShow(Sender: TObject);
begin
With dataModule1.aqr_com do
begin
Close;
Sql.Clear;
Sql.Add('select company_name from sny_company');
PrePared;
Open;
if not(Trim(fieldByName('company_name').AsString) = '') then
lb_head.Caption := Trim(FieldByName('company_name').AsString)
else
lb_head.Caption := '德高';
Close;
end;
end;
procedure Tfm_log.FormKeyPress(Sender: TObject; var Key: Char);
begin
if (Key = #13) then
begin
Key := #0;
if (activeControl = edt_key) and not(Trim(edt_key.Text) = '') then sbtn_log.Click;
end
else if (key = #27) then
begin
key := #0;
sbtn_cancel.Click;
end;
end;
procedure Tfm_log.FormCreate(Sender: TObject);
begin
lb_ok := false;
end;
procedure Tfm_log.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if lb_ok = true then
begin
if not(Trim(edt_name.Text) = 'dico') then
proc_main_power //主界面的权限
else
begin
fm_main.ToolButton1.Visible := false;
fm_main.ToolButton2.Visible := false;
fm_main.ToolButton3.Visible := false;
fm_main.tlb_sp1.Visible := false;
fm_main.tlb_sp2.Visible := false;
fm_main.tlb_sp3.Visible := false;
end;
with fm_main do
begin
StatusBar1.Panels[0].Text := '姓名:' + sny_user;
StatusBar1.Panels[1].Text := '日期:' + DateToStr(Date);
StatusBar1.Panels[2].Text := ' 德高科技开发有限公司';
end;
sny_title1 := lb_head.Caption + '桑拿浴';
fm_main.Caption := sny_title1;
action := cafree;
end
else
application.Terminate;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -