📄 unit_frmmain.pas
字号:
unit Unit_frmmain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, ExtCtrls, jpeg, DB,IniFiles, ComCtrls,shellapi,
CyberXPMenu;
type
TFrmmain = class(TForm)
MainMenu: TMainMenu;
N4: TMenuItem;
MenuTool: TMenuItem;
menuquick: TMenuItem;
N6: TMenuItem;
MenuLogin: TMenuItem;
Menuset: TMenuItem;
MenuLogout: TMenuItem;
MenuLock: TMenuItem;
N10: TMenuItem;
MenuExit: TMenuItem;
MenuWin: TMenuItem;
MenuCascade: TMenuItem;
MenuHer: TMenuItem;
MenuVer: TMenuItem;
MenuCloseWin: TMenuItem;
MenuMin: TMenuItem;
N16: TMenuItem;
MenuHelp: TMenuItem;
MenuHomePage: TMenuItem;
MenuAbout: TMenuItem;
MenuIndex: TMenuItem;
N20: TMenuItem;
Image1: TImage;
StatusBar1: TStatusBar;
Timer1: TTimer;
N1: TMenuItem;
MenuUser: TMenuItem;
MenuCinema: TMenuItem;
N9: TMenuItem;
MenuplanTemplate: TMenuItem;
N12: TMenuItem;
MenuDict: TMenuItem;
MenuFilm: TMenuItem;
N15: TMenuItem;
Menuplan: TMenuItem;
N22: TMenuItem;
MenuLocalsale: TMenuItem;
MenuSellBookticket: TMenuItem;
N3: TMenuItem;
Menusellquery: TMenuItem;
MenuPriceTemplate: TMenuItem;
N5: TMenuItem;
Menuseattype: TMenuItem;
MenuCleardata: TMenuItem;
MenuSysparam: TMenuItem;
MenuPlanquery: TMenuItem;
CyberXPMenu1: TCyberXPMenu;
procedure MenuCascadeClick(Sender: TObject);
procedure MenuHerClick(Sender: TObject);
procedure MenuVerClick(Sender: TObject);
procedure MenuMinClick(Sender: TObject);
procedure MenuCloseWinClick(Sender: TObject);
procedure MenuExitClick(Sender: TObject);
procedure MenusetClick(Sender: TObject);
procedure MenuLoginClick(Sender: TObject);
procedure MenuLogoutClick(Sender: TObject);
procedure MenuLockClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormShow(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure MenuUserClick(Sender: TObject);
procedure MenuCinemaClick(Sender: TObject);
procedure MenuDictClick(Sender: TObject);
procedure MenuPriceTemplateClick(Sender: TObject);
procedure MenuplanTemplateClick(Sender: TObject);
procedure MenuseattypeClick(Sender: TObject);
procedure MenuFilmClick(Sender: TObject);
procedure MenuplanClick(Sender: TObject);
procedure MenuLocalsaleClick(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure MenusellqueryClick(Sender: TObject);
procedure MenuCleardataClick(Sender: TObject);
procedure MenuHomePageClick(Sender: TObject);
procedure MenuSellBookticketClick(Sender: TObject);
procedure MenuSysparamClick(Sender: TObject);
procedure MenuPlanqueryClick(Sender: TObject);
private
MultiLogin:Boolean;
procedure initparams;
procedure InitMenu;
procedure saveinifile;
{ Private declarations }
public
{ Public declarations }
end;
var
Frmmain: TFrmmain;
implementation
uses unit_public, Unit_login, config, Unit_ScreenLock, Unit_ADODM;
{$R *.dfm}
procedure TFrmmain.MenuCascadeClick(Sender: TObject);
begin
Cascade;
end;
procedure TFrmmain.MenuHerClick(Sender: TObject);
begin
TileMode := tbHorizontal;
Tile;
end;
procedure TFrmmain.MenuVerClick(Sender: TObject);
begin
TileMode := tbVertical;
Tile;
end;
procedure TFrmmain.MenuMinClick(Sender: TObject);
var
i: Integer;
begin
for i := MDIChildCount - 1 downto 0 do
MDIChildren[i].WindowState := wsMinimized;
end;
procedure TFrmmain.MenuCloseWinClick(Sender: TObject);
var
i: Integer;
begin
for i := MDIChildCount - 1 downto 0 do
MDIChildren[i].Close ;
end;
procedure TFrmmain.MenuExitClick(Sender: TObject);
begin
close;
end;
procedure TFrmmain.MenusetClick(Sender: TObject);
begin
Form_config := TForm_config.Create(Application);
Form_config.ShowModal;
Form_config.Free;
end;
procedure TFrmmain.MenuLoginClick(Sender: TObject);
begin
FrmLogin := TFrmLogin.Create(Application);
if FrmLogin.ShowModal<>mrok then
begin
FrmLogin.Free;
exit;
end;
FrmLogin.Free;
InitMenu;
Statusbar1.Panels[1].Text :='操作员:'+publicinfo.OperName ;
MenuLogin.Enabled := False;
menuLogout.Enabled := True;
end;
procedure TFrmmain.MenuLogoutClick(Sender: TObject);
var
i:integer;
item0:TMenuItem;
begin
for I:=1 to MainMenu.Items.Count -3 do
begin
Item0 := MainMenu.Items[I];
Item0.Visible :=false;
end;
MenuLogin.Enabled := True;
menuLogout.Enabled := false;
statusbar1.Panels[1].Text :='操作员:';
MenuLoginClick(nil);
end;
procedure TFrmmain.MenuLockClick(Sender: TObject);
begin
FrmLock := TFrmLock.Create(Application);
FrmLock.ShowModal;
FrmLock.Free;
end;
procedure TFrmmain.FormCreate(Sender: TObject);
begin
publicinfo:=Tpublicinfo.Create ;
end;
procedure TFrmmain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
saveinifile;
publicinfo.Free ;
end;
procedure TFrmmain.initparams;
var
MyIniFile : TIniFile;
_FileName,_Server,_dbname,
_username,_pwd,cnstr : String;
_timeout : integer;
SystemTime : TSystemTime;
localtime : TDateTime;
begin
_FileName := ExtractFileDir(ParamStr(0))+'\jxparams.ini';
if ( not FileExists(_FileName) ) then
begin
Application.MessageBox(pchar('配置文件不存在!'),pchar('警告'),MB_OK);
exit;
end;
MyIniFile := TIniFile.Create(_FileName);
try
_Server := MyIniFile.ReadString('DataBase SetUp', 'DBServer' ,'127.0.0.1');
_dbname := MyIniFile.ReadString('DataBase SetUp', 'DBName' ,'jxdb');
_username := MyIniFile.ReadString('DataBase SetUp', 'UserName' ,'sa');
_pwd := MyIniFile.ReadString('DataBase SetUp', 'Pwd' ,'123');
_timeout := MyIniFile.ReadInteger('DataBase SetUp', 'TimeOut',5);
publicinfo.OperCode :=MyIniFile.ReadString('SysConfig', 'opercode','admin');
application.Title :=MyIniFile.ReadString('SysConfig','AppTitle','嘉兴大剧院售票系统');
publicinfo.SigleLineColor := MyIniFile.ReadInteger('SysConfig', 'siglecolor',$00CAF3BE);
publicinfo.DoubleLineColor:= MyIniFile.ReadInteger('SysConfig', 'DoubleColor',$00EBFBE6);
publicinfo.showtime :=MyIniFile.ReadInteger('SysConfig', 'showtime',500);
finally
MyIniFile.Free;
end;
cnstr:='Provider=SQLOLEDB.1;Persist Security Info=True; User ID='+_username+
';Password='+_pwd+';Initial Catalog='+_dbname+';Data Source='+_Server;
try
ADODM.ADOCN.Close ;
ADODM.ADOCN.ConnectionString :=Cnstr;
ADODM.ADOCN.ConnectionTimeout :=_timeout;
ADODM.ADOCN.Open ;
statusbar1.Panels[2].Text :='连接状态:连接成功';
except
on e:exception do
begin
application.MessageBox(pchar('连接数据库错误!'+e.Message),'连接数据库',mb_ok);
statusbar1.Panels[2].Text :='连接状态:连接失败' ;
end;
end;
if publicinfo.Execsql('select getdate() as DBsystime',false) then
begin
with adodm.ADOQRY do
begin
if recordcount<=0 then exit;
first;
localtime:=fieldbyname('DBsystime').AsDateTime;
DateTimeToSystemTime(localtime,SystemTime);
SetLocalTime(SystemTime);
end;
end;
end;
procedure TFrmmain.FormShow(Sender: TObject);
begin
initparams;
end;
procedure TFrmmain.Timer1Timer(Sender: TObject);
begin
statusbar1.Panels[3].Text :='当前时间:'+formatdatetime('yyyy"年"mm"月"dd"日"hh"时"mm"分"',now);
end;
procedure TFrmmain.saveinifile;
var
_FileName:string;
MyIniFile:TIniFile;
begin
_FileName := ExtractFileDir(ParamStr(0))+'\jxparams.ini';
if ( not FileExists(_FileName) ) then
begin
Application.MessageBox(pchar('配置文件不存在!'),pchar('警告'),MB_OK);
exit;
end;
MyIniFile := TIniFile.Create(_FileName);
try
MyIniFile.WriteString('SysConfig', 'opercode' ,publicinfo.OperCode);
MyIniFile.WriteString('SysConfig', 'userpwd' ,publicinfo.Password);
finally
MyIniFile.Free;
end;
end;
procedure TFrmmain.MenuUserClick(Sender: TObject);
begin
publicinfo.MenuRequest(MenuUser.Tag);
end;
procedure TFrmmain.MenuCinemaClick(Sender: TObject);
begin
publicinfo.MenuRequest(MenuCinema.Tag);
end;
procedure TFrmmain.MenuDictClick(Sender: TObject);
begin
publicinfo.MenuRequest(MenuDict.Tag);
end;
procedure TFrmmain.MenuPriceTemplateClick(Sender: TObject);
begin
publicinfo.MenuRequest(MenuPriceTemplate.Tag ) ;
end;
procedure TFrmmain.MenuplanTemplateClick(Sender: TObject);
begin
publicinfo.MenuRequest(MenuplanTemplate.Tag ) ;
end;
procedure TFrmmain.MenuseattypeClick(Sender: TObject);
begin
publicinfo.MenuRequest(Menuseattype.Tag ) ;
end;
procedure TFrmmain.MenuFilmClick(Sender: TObject);
begin
publicinfo.MenuRequest(MenuFilm.Tag );
end;
procedure TFrmmain.MenuplanClick(Sender: TObject);
begin
publicinfo.MenuRequest (Menuplan.Tag);
end;
procedure TFrmmain.MenuLocalsaleClick(Sender: TObject);
begin
publicinfo.MenuRequest (MenuLocalsale.Tag);
end;
procedure TFrmmain.FormActivate(Sender: TObject);
begin
if (MDIChildCount<=0) and (not Multilogin) then MenuLoginClick(Sender);
if Not MultiLogin then MultiLogin :=true;
end;
procedure TFrmmain.MenusellqueryClick(Sender: TObject);
begin
publicinfo.MenuRequest(Menusellquery.Tag);
end;
procedure TFrmmain.MenuCleardataClick(Sender: TObject);
begin
publicinfo.MenuRequest(MenuCleardata.Tag);
end;
procedure TFrmmain.InitMenu;
var
Item0,Item1 :TMenuItem;
J,K:Integer;
sqlstr:String;
begin
//判断一下是否是后门用户!
if (PublicInfo.Password ='123456789') then
begin
for J:=1 to MainMenu.Items.Count -3 do
begin
Item0 := MainMenu.Items[J];
Item0.Enabled := true; Item0.Visible := true;
for K:=0 to Item0.Count -1 do
begin
Item1 := Item0.Items[K];
Item1.Enabled := true;
end;
end;
exit;
end;
for J:=1 to MainMenu.Items.Count -3 do
begin
Item0 := MainMenu.Items[J];
Item0.Enabled := false; Item0.Visible := true;
for K:=0 to Item0.Count -1 do
begin
Item1 := Item0.Items[K];
Item1.Enabled := false;
end;
end; //屏蔽所有的用户菜单,但是可见!
sqlstr :='Select MenuName from tblpower where GroupID= '+IntToStr(PublicInfo.OperGroupID);
if publicinfo.Execsql(sqlstr,false) then
begin
with adodm.ADOQRY do
begin
if recordcount<=0 then exit;
First;
while not Eof do
begin
sqlstr := Fieldbyname('MenuName').AsString ;
//搜寻当前菜单
for J:=1 to MainMenu.Items.Count -3 do
begin
Item0 := MainMenu.Items[J];
if Trim(Item0.Name) = Trim(sqlstr) then
begin
Item0.Enabled := true;
break;
end
else
begin
for K:=0 to Item0.Count -1 do
begin
Item1 := Item0.Items[K];
if Trim(Item1.Name) = Trim(sqlstr) then
begin
Item1.Enabled := true;
Item0.Enabled := true;
break;
end;
end;
end;
end;
Next;
end;
end;
end;
end;
procedure TFrmmain.MenuHomePageClick(Sender: TObject);
begin
ShellExecute(Handle, 'open', 'http://www.chinaecai.com', nil, nil, SW_MAXIMIZE);
end;
procedure TFrmmain.MenuSellBookticketClick(Sender: TObject);
begin
publicinfo.MenuRequest(MenuSellBookticket.Tag);
end;
procedure TFrmmain.MenuSysparamClick(Sender: TObject);
begin
publicinfo.MenuRequest(MenuSysparam.Tag );
end;
procedure TFrmmain.MenuPlanqueryClick(Sender: TObject);
begin
publicinfo.MenuRequest(MenuPlanquery.Tag );
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -