📄 rightfrm.~pas
字号:
unit rightfrm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ChildFrm, StdCtrls, Buttons, ExtCtrls, ExtDlgs,inifiles, Menus;
type
TRightForm = class(TChildForm)
GroupBox1: TGroupBox;
Splitter1: TSplitter;
GroupBox2: TGroupBox;
pnlscreen: TPanel;
imgScreen: TImage;
Label1: TLabel;
Panel1: TPanel;
BBtnopen: TBitBtn;
BBtnColor: TBitBtn;
BBtnUse: TBitBtn;
BBtnClose: TBitBtn;
LBpicture: TListBox;
GroupBox3: TGroupBox;
GroupBox4: TGroupBox;
Label2: TLabel;
edAdduser: TEdit;
BBtnadduser: TBitBtn;
Label3: TLabel;
CBeguser: TComboBox;
Label4: TLabel;
Edpasswd: TEdit;
Label5: TLabel;
edokpasswd: TEdit;
BBtnAddCancel: TBitBtn;
bbtnDel: TBitBtn;
bbtnEdcancel: TBitBtn;
GroupBox5: TGroupBox;
Label6: TLabel;
CBrguser: TComboBox;
RGrg: TRadioGroup;
BBtnRgok: TBitBtn;
bbtnRgHelp: TBitBtn;
CDcolor: TColorDialog;
OPDopen: TOpenPictureDialog;
bbtnEdit: TBitBtn;
Label7: TLabel;
procedure FormDestroy(Sender: TObject);
procedure BBtnCloseClick(Sender: TObject);
procedure LBpictureClick(Sender: TObject);
procedure BBtnColorClick(Sender: TObject);
procedure BBtnopenClick(Sender: TObject);
procedure BBtnUseClick(Sender: TObject);
procedure BBtnAddCancelClick(Sender: TObject);
procedure bbtnEdcancelClick(Sender: TObject);
procedure BBtnadduserClick(Sender: TObject);
procedure EdpasswdKeyPress(Sender: TObject; var Key: Char);
procedure edokpasswdKeyPress(Sender: TObject; var Key: Char);
procedure edAdduserKeyPress(Sender: TObject; var Key: Char);
procedure bbtnEditClick(Sender: TObject);
procedure bbtnDelClick(Sender: TObject);
procedure BBtnRgokClick(Sender: TObject);
procedure CBeguserChange(Sender: TObject);
procedure CBrguserChange(Sender: TObject);
procedure edAdduserChange(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
procedure LBloadorsaveini(var Ainibmp:string;Aloadname:string);
{ Private declarations }
protected
procedure SXMESSAGE(var msg:TMessage);message SX_MYMESSAGE;
procedure SYMESSAGE(var msg:TMessage);message SY_MYMESSAGE;
public
function GetformButton:Tpanel;override;
{ Public declarations }
end;
var
RightForm: TRightForm;
//inifile method
function openInifile(image:Timage;panel:Tpanel;var inifile:tinifile):boolean;
procedure writeInifile(Afile:string;Acolor:variant;var inifile:tinifile);
implementation
uses dmfrm;
var
aFormHandle:Thandle;
pinifile:Tinifile;
bmpinifile:string;
{$R *.dfm}
procedure TRightForm.SXMESSAGE(var msg: TMessage);
begin
imgScreen.Visible:=true;
imgScreen.Picture.Assign(TPersistent(msg.LParam));
aFormHandle:=msg.WParam;
end;
procedure TRightForm.SYMESSAGE(var msg: TMessage);
begin
imgScreen.Visible:=false;
pnlScreen.Color:=TColor(msg.LParam);
aFormHandle:=msg.WParam;
end;
procedure TRightForm.FormDestroy(Sender: TObject);
begin
inherited;
Rightform:=nil;
end;
function TRightForm.GetformButton: Tpanel;
begin
Result:=nil;
end;
procedure TRightForm.BBtnCloseClick(Sender: TObject);
begin
inherited;
close;
end;
procedure TRightForm.LBloadorsaveini(var Ainibmp: string;
Aloadname: string);
begin
Ainibmp:=Aloadname;
imgScreen.Picture.LoadFromFile(Aloadname);
end;
procedure TRightForm.LBpictureClick(Sender: TObject);
var
Aitem,Aname:string;
begin
inherited;
imgScreen.Visible:=true;
Aitem:=LBpicture.Items.Strings[lbpicture.ItemIndex];
Aname:=extractfilepath(application.ExeName)+'backbmp\picture1.bmp';
if fileexists(Aname)and(Aitem='人古画绘') then LBloadorsaveini(bmpinifile,Aname);
Aname:=extractfilepath(application.ExeName)+'backbmp\picture2.bmp';
if fileexists(Aname)and(Aitem='蓝天白云') then LBloadorsaveini(bmpinifile,Aname);
Aname:=extractfilepath(application.ExeName)+'backbmp\picture3.bmp';
if fileexists(Aname)and(Aitem='暗灰壁画') then LBloadorsaveini(bmpinifile,Aname);
Aname:=extractfilepath(application.ExeName)+'backbmp\picture4.bmp';
if fileexists(Aname)and(Aitem='雪花纷飞') then LBloadorsaveini(bmpinifile,Aname);
Aname:=extractfilepath(application.ExeName)+'backbmp\picture5.bmp';
if fileexists(Aname)and(Aitem='壁画之一') then LBloadorsaveini(bmpinifile,Aname);
Aname:=extractfilepath(application.ExeName)+'backbmp\picture6.bmp';
if fileexists(Aname)and(Aitem='壁画之二') then LBloadorsaveini(bmpinifile,Aname);
end;
procedure TRightForm.BBtnColorClick(Sender: TObject);
begin
inherited;
CDcolor.Color:=pnlscreen.Color;
if CDcolor.Execute then
begin
imgScreen.Visible:=false;
pnlscreen.Color:=CDcolor.Color;
end;
end;
procedure TRightForm.BBtnopenClick(Sender: TObject);
begin
inherited;
if OPDopen.Execute then
begin
imgScreen.Visible:=true;
imgScreen.Picture.LoadFromFile(OPDopen.FileName);
bmpinifile:=OPDopen.FileName;
end;
end;
procedure TRightForm.BBtnUseClick(Sender: TObject);
begin
inherited;
if imgScreen.Visible then
begin
postmessage(aFormHandle,SX_MYMESSAGE,1,Integer(imgScreen.Picture));
writeinifile(bmpinifile,pnlScreen.Color,pinifile);
end
else begin
postmessage(aFormHandle,SX_MYMESSAGE,2,Integer(pnlScreen.Color));
writeinifile(Emptystr,pnlScreen.Color,pinifile);
end;
end;
procedure TRightForm.BBtnAddCancelClick(Sender: TObject);
begin
inherited;
edAdduser.Text:='';
edAdduser.SetFocus;
end;
procedure TRightForm.bbtnEdcancelClick(Sender: TObject);
begin
inherited;
Edpasswd.Text:='';
edokpasswd.Text:='';
Edpasswd.SetFocus;
end;
procedure TRightForm.BBtnadduserClick(Sender: TObject);
begin
inherited;
if CBeguser.Items.IndexOf(edadduser.Text)<>-1 then
begin
showmessage('该用户已经存在!');
edadduser.Clear;
edadduser.SetFocus;
exit;
end;
if not DMbook.adduser(edadduser.Text) then
showmessage('增加新用户失败!');
CBeguser.Items.Add(edAdduser.Text);
CBrguser.Items.Add(edAdduser.Text);
edAdduser.Text:='';
end;
procedure TRightForm.EdpasswdKeyPress(Sender: TObject; var Key: Char);
begin
inherited;
if key=#13 then edokpasswd.SetFocus
else if key<>#8 then key:=chr(ord(key)-10);
end;
procedure TRightForm.edokpasswdKeyPress(Sender: TObject; var Key: Char);
begin
inherited;
if key=#13 then bbtnEdit.SetFocus
else if key<>#8 then key:=chr(ord(key)-10);
end;
procedure TRightForm.edAdduserKeyPress(Sender: TObject; var Key: Char);
begin
inherited;
if key=#13 then BBtnadduser.SetFocus;
end;
procedure TRightForm.bbtnEditClick(Sender: TObject);
begin
inherited;
if (CurrentUsername<>'system')and(CBeguser.Text='system') then
begin
showmessage('你没有修改用户system的密码的权利!');
Edpasswd.Clear;
edokpasswd.Clear;
CBeguser.SetFocus;
exit;
end;
if Edpasswd.Text=Emptystr then
begin
showmessage('密码输入框不能为空!');
Edpasswd.SetFocus;
exit;
end;
if edokpasswd.Text<>Edpasswd.Text then
begin
showmessage('"检视新密码框"与"输入新密码框"'+#13#10#10+' 输入的密码不一样!');
edokpasswd.SetFocus;
exit;
end;
if not dmBook.editpassword(CBeguser.Text,Edpasswd.Text) then
showmessage('修改用户密码失败!');
CBeguser.Text:=Emptystr;
Edpasswd.Text:=Emptystr;
edokpasswd.Text:=Emptystr;
end;
procedure TRightForm.bbtnDelClick(Sender: TObject);
begin
inherited;
if not dmBook.deleteuser(CBeguser.Text) then
showmessage('删除用户失败!');
CBrguser.Items.Delete(CBrguser.Items.IndexOf(CBeguser.Text));
CBeguser.Items.Delete(CBeguser.Items.IndexOf(CBeguser.Text));
Edpasswd.Text:=Emptystr;
edokpasswd.Text:=Emptystr;
CBeguser.Text:=Emptystr;
end;
procedure TRightForm.BBtnRgokClick(Sender: TObject);
begin
inherited;
if (CurrentUsername<>'system')and(CBrguser.Text='system') then
begin
showmessage('你没有修改用户systemr的权限的权利!');
CBrguser.SetFocus;
exit;
end;
if not dmBook.setUserRight(CBrguser.Text,RGrg.ItemIndex) then
showmessage('修改用户权限失败!');
CBrguser.Text:=Emptystr;
end;
procedure TRightForm.CBeguserChange(Sender: TObject);
begin
inherited;
if (CBeguser.Text<>EmptyStr)and(CBeguser.ItemIndex=CBeguser.Items.IndexOf('system')) then
begin
if CurrentUsername='system' then bbtnEdit.Enabled:=true
else bbtnEdit.Enabled:=false;
bbtnDel.Enabled:=false;
end
else begin
bbtnEdit.Enabled:=true;
if CBeguser.Text=EmptyStr then
begin
bbtnEdit.Enabled:=false;
bbtnDel.Enabled:=false;
end
else bbtnDel.Enabled:=true;
end;
end;
procedure TRightForm.CBrguserChange(Sender: TObject);
var
t:integer;
begin
inherited;
if CBrguser.Text<>EmptyStr then
begin
BBtnRgok.Enabled:=true;
if (CurrentUsername='system')and(CBrguser.ItemIndex=CBrguser.Items.IndexOf('system')) then
BBtnRgok.Enabled:=false;
if CBrguser.ItemIndex=CBrguser.Items.IndexOf('system') then BBtnRgok.Enabled:=false;
RGrg.Enabled:=true;
t:=dmbook.getUserRightIndex(CBrguser.Text);
case t of
0:RGrg.ItemIndex:=0;
1:RGrg.ItemIndex:=1;
2:RGrg.ItemIndex:=2;
3:RGrg.ItemIndex:=3;
end;
end
else begin
BBtnRgok.Enabled:=false;
RGrg.Enabled:=false;
end;
end;
procedure TRightForm.edAdduserChange(Sender: TObject);
begin
inherited;
if edAdduser.Text=EmptyStr then BBtnadduser.Enabled:=false
else BBtnadduser.Enabled:=true;
end;
function openInifile(image:Timage;panel:Tpanel;var inifile:Tinifile):boolean;
var
dpbmp:string;
dpcolor:variant;
LocalRemote:string;
pdataType:string;
RemotedbServer:string;
tt:integer;
begin
pinifile:=inifile;
Result:=true;
image.visible:=false;
RemotedbServer:='127.0.0.1';
with inifile do
begin //读取INI文件内容到变量中,初始化程式设定
tt:=readinteger('BOOK2001','BmpOrColor',0);
childfrm.readercount:=readinteger('BOOK2001','ReaderCount',0);
dpbmp:=readstring('BOOK2001','DostopBmp',Emptystr);
dpcolor:=readstring('BOOK2001','DostopColor',Emptystr);
LocalRemote:=readstring('BOOK2001','LocalRemote','Local');
pdataType:=readstring('BOOK2001','DataType','INTRBASE');
if pdataType=Emptystr then pdataType:='INTRBASE';
if LocalRemote<>'Romate' then LocalRemote:='Local'
else RemotedbServer:=readstring('BOOK2001','RemoteServer','127.0.0.1');
if LocalRemote='Local' then
begin
if not fileexists(extractfilepath(application.ExeName)+'data\books.gdb') then
begin
messagedlg('数据库'+#13+extractfilepath(application.ExeName)+'data\books.gdb'
+#13#10+'不存在。',mtError,[mbOK],0);
halt(0);
//application.Terminate;
end;
end
else begin
if RemotedbServer<>'127.0.0.1' then
begin
//检测是否能连上远程数据库服务器
end;
end;
childfrm.dataAliasName:=readstring('BOOK2001','DataAliasName','books');
if childfrm.dataAliasName=Emptystr then childfrm.dataAliasName:='books';
dmbook.createAliasName(childfrm.dataAliasName,LocalRemote,pdataType);
childfrm.borrowbooknum:=readinteger('BOOK2001','BorrowNumber',1); //初始化借书数量变量
childfrm.borrowbookday:=readinteger('BOOK2001','BorrowDay',7); //初始化借书借期变量
childfrm.passdaybookcomm:=readinteger('BOOK2001','BorrowPassCommNumber',1);//初始化一般过期扣点数量变量
childfrm.passdayself:=readinteger('BOOK2001','BorrowPassSelfNumber',1);//初始化特殊过期扣点数量变量
childfrm.backuptime:=readtime('BOOK2001','BackupTime',strtotime('23:00:00')); //初始化备份时间变量
childfrm.checkusesdefaultday:=readbool('BOOK2001','UseDefaulBorrowDay',true);
if tt=0 then
begin
if fileexists(dpbmp) then
begin
image.visible:=true;
image.Picture.loadfromfile(dpbmp);
bmpinifile:=dpbmp;
end
else Result:=false;
end
else begin
try
panel.color:=dpcolor;
except
Result:=false;
end;
end;
end;
end;
procedure writeInifile(Afile:string;Acolor:variant;var inifile:tinifile);
begin
with inifile do
begin
if Afile<>EmptyStr then
begin
writeinteger('BOOK2001','BmpOrColor',0);
writestring('BOOK2001','DostopBmp',Afile)
end
else begin
writeinteger('BOOK2001','BmpOrColor',1);
writestring('BOOK2001','DostopColor',vartostr(Acolor));
end;
end;
end;
procedure TRightForm.FormCreate(Sender: TObject);
begin
inherited;
dmbook.QryLogin.First;
while not dmbook.qrylogin.Eof do
begin
CBeguser.Items.Add(dmbook.qrylogin['username']);
CBrguser.Items.Add(dmbook.qrylogin['username']);
dmbook.qrylogin.Next;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -