main.pas

来自「销售帐目管理」· PAS 代码 · 共 658 行 · 第 1/2 页

PAS
658
字号
unit Main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, SUIStatusBar, ExtCtrls, SUIForm, Menus, SUIMainMenu,
  ActnList, ToolWin, SUIToolBar, ImgList, SUIButton, jpeg, SUIImagePanel,
  PicShow, SUIPopupMenu, StrUtils, MMSystem, iComponent, iVCLComponent,
  iCustomComponent, iPositionComponent, iProgressComponent, iLedBar, SUIDlg,
  FileCtrl, StdCtrls, SUIThemes, IniFiles, ComObj, ExtDlgs  ;

type
  TFrmMain = class(TForm)
    actlst1: TActionList;
    actUseLogin: TAction;
    actZmLocate: TAction;
    actUseLogOut: TAction;
    actExitSys: TAction;
    actXsdw: TAction;
    actZmdj: TAction;
    actDevice: TAction;
    actUserMgr: TAction;
    actSysSet: TAction;
    actSongMgr: TAction;
    actDataBak: TAction;
    actHelp: TAction;
    actAbout: TAction;
    actCalculator: TAction;
    actCalendar: TAction;
    actNotePad: TAction;
    il1: TImageList;
    suiSongMenu: TsuiPopupMenu;
    dlgOpen1: TOpenDialog;
    tmr1: TTimer;
    actPhotoSet: TAction;
    suiInterfaceMenu1: TsuiPopupMenu;
    Pop_Interface1: TMenuItem;
    Pop_Interface2: TMenuItem;
    Pop_Interface3: TMenuItem;
    Pop_Interface4: TMenuItem;
    Pop_Interface5: TMenuItem;
    tmr3: TTimer;
    actPhoteBook: TAction;
    actXxsf: TAction;
    suiMainMenu1: TsuiMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    pnlMedia: TPanel;
    pnlMediaDis: TPanel;
    pnl1: TPanel;
    pnl3: TPanel;
    BtnMediaEject: TsuiImageButton;
    BtnMediaNext: TsuiImageButton;
    BtnMediaPlay: TsuiImageButton;
    BtnMediaPause: TsuiImageButton;
    BtnMediaStop: TsuiImageButton;
    BtnMediaPrior: TsuiImageButton;
    pnlMediaTime: TPanel;
    pnlSongName: TPanel;
    suiImagePanel1: TsuiImagePanel;
    suiForm1: TsuiForm;
    clbr1: TCoolBar;
    suiToolBar1: TsuiToolBar;
    btn1: TToolButton;
    suiImagePanel2: TsuiImagePanel;
    suiStatusBar1: TsuiStatusBar;
    btn2: TToolButton;
    btn3: TToolButton;
    btn4: TToolButton;
    btn5: TToolButton;
    btn6: TToolButton;
    btn7: TToolButton;
    btn8: TToolButton;
    btn9: TToolButton;
    btn10: TToolButton;
    btn11: TToolButton;
    btn12: TToolButton;
    btn13: TToolButton;
    btn14: TToolButton;
    btn15: TToolButton;
    btn16: TToolButton;
    btn17: TToolButton;
    N5: TMenuItem;
    N6: TMenuItem;
    N7: TMenuItem;
    N8: TMenuItem;
    N9: TMenuItem;
    N10: TMenuItem;
    N11: TMenuItem;
    N12: TMenuItem;
    N13: TMenuItem;
    N14: TMenuItem;
    N15: TMenuItem;
    N16: TMenuItem;
    N17: TMenuItem;
    N18: TMenuItem;
    N19: TMenuItem;
    N20: TMenuItem;
    N21: TMenuItem;
    N22: TMenuItem;
    N23: TMenuItem;
    N24: TMenuItem;
    N25: TMenuItem;
    N26: TMenuItem;
    N27: TMenuItem;
    N28: TMenuItem;
    N29: TMenuItem;
    suiMessageDialog1: TsuiMessageDialog;
    btn18: TToolButton;
    btn19: TToolButton;
    dlgSave1: TSaveDialog;
    iLedBar1: TiLedBar;
    dlgOpenPic1: TOpenPictureDialog;
    procedure FormShow(Sender: TObject);
    procedure actExitSysExecute(Sender: TObject);
    procedure BtnMediaPlayClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure BtnMediaPauseClick(Sender: TObject);
    procedure BtnMediaStopClick(Sender: TObject);
    procedure pnlMediaTimeMouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure BtnMediaEjectClick(Sender: TObject);
    procedure BtnMediaNextClick(Sender: TObject);
    procedure BtnMediaPriorClick(Sender: TObject);
    procedure tmr1Timer(Sender: TObject);
    procedure iLedBar1MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure actPhotoSetExecute(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure Pop_Interface1Click(Sender: TObject);
    procedure Pop_Interface2Click(Sender: TObject);
    procedure Pop_Interface3Click(Sender: TObject);
    procedure Pop_Interface4Click(Sender: TObject);
    procedure Pop_Interface5Click(Sender: TObject);
    procedure tmr3Timer(Sender: TObject);
    procedure actSysSetExecute(Sender: TObject);
    procedure actPhoteBookExecute(Sender: TObject);
    procedure actDeviceExecute(Sender: TObject);
    procedure actXxsfExecute(Sender: TObject);
    procedure actXsdwExecute(Sender: TObject);
    procedure actZmdjExecute(Sender: TObject);
    procedure actZmLocateExecute(Sender: TObject);
    procedure actUserMgrExecute(Sender: TObject);
    procedure actUseLoginExecute(Sender: TObject);
    procedure actUseLogOutExecute(Sender: TObject);
    procedure actDataBakExecute(Sender: TObject);
    procedure actAboutExecute(Sender: TObject);
    procedure suiImagePanel2DblClick(Sender: TObject);
  private
    procedure MakeSongMenu(Sender: TObject);//构造歌曲菜单
    procedure OnSongMenuSel(Sender : TObject);//歌曲选择事件
  public
  end;

var
  FrmMain: TFrmMain;

implementation

uses PubUnit, PicSet, ScreenSafe, DateCn, SysSet, Spxx, Sjdw, Dwxx, Zmdj,
  ZmLocate, yhgl, Login, DataModule, About;

{$R *.dfm}

procedure TFrmMain.OnSongMenuSel(Sender : TObject);//歌曲选择事件
var Index,i,Count : Integer ;
begin
  Index := (Sender as TMenuItem).MenuIndex ;
  P_SongIndex := Index ;
  BtnMediaPlay.OnClick(Self);
end;

procedure TFrmMain.MakeSongMenu(Sender: TObject);//构造歌曲菜单
var MenuItem : TMenuItem ;
    i : Integer ;
begin
  suiSongMenu.Items.Clear ;//清除菜单
  //有歌曲导入
  for i := Low(Pub_SongListArr) to High(Pub_SongListArr) do
  begin
    MenuItem := TMenuItem.Create(Self);
    MenuItem.Caption := Pub_SongListArr[i].SongName ;
    MenuItem.MenuIndex := i ;
    MenuItem.OnClick := OnSongMenuSel ;
    suiSongMenu.Items.Add(MenuItem);
  end;
end;

//========主窗口显示
procedure TFrmMain.FormShow(Sender: TObject);
var i : Integer ;
begin
  {构造歌曲播放菜单}
  if Length(Pub_SongListArr) > 0 then
  begin
    MakeSongMenu(Self);//构造菜单
    P_SongName := Pub_SongListArr[P_SongIndex].SongName ;
    P_SongFile := Pub_SongListArr[P_SongIndex].FileName ;
    suiSongMenu.Items[P_SongIndex].Checked := True ;
    BtnMediaPlay.Enabled := True ;
    BtnMediaNext.Enabled := True ;
    BtnMediaPrior.Enabled := True ;
    if AutoPlayMp3 then BtnMediaPlay.OnClick(Self);//自动播放MP3
  end;
end;

//========退出系统
procedure TFrmMain.actExitSysExecute(Sender: TObject);
begin
  Close();
end;

//========主串口创建
procedure TFrmMain.FormCreate(Sender: TObject);
var i,Count : Integer ;
begin
  iLedBar1.Left := 0 ;
  iLedBar1.Top := 0 ;
  iLedBar1.Height := pnlMediaTime.Height ;
  iLedBar1.Width := pnlMediaTime.Width ;
  //==========设置功能是否可用
  {添加新型提示窗口}
  Count := ComponentCount ;
  for i := 0 to Count - 1 do begin
    if (Components[i] is TAction) then
    begin
       if (((Components[i] as TAction).Caption <> '用户注册') and
           ((Components[i] as TAction).Caption <> '退出系统') and
           ((Components[i] as TAction).Caption <> '我的相册') and
           ((Components[i] as TAction).Caption <> '系统说明')) then
          (Components[i] as TAction).Enabled := false;
    end;
  end;
  {改变界面}
  if FileExists(P_PicFileName) then
     suiImagePanel2.Picture.LoadFromFile(P_PicFileName);
  ChangeInterface(Self,suiForm1);
  Pop_Interface1.Checked := P_Interface = Ord(BlueGlass) ;
  Pop_Interface2.Checked := P_Interface = Ord(DeepBlue);
  Pop_Interface3.Checked := P_Interface = Ord(Protein) ;
  Pop_Interface4.Checked := P_Interface = Ord(MacOS) ;
  Pop_Interface5.Checked := P_Interface = Ord(WinXP) ;
  suiForm1.Caption := P_AppName ;
  suiImagePanel1.Caption := P_AppName ;
  {mp3初始化}
  LoadSongList();//导入歌曲列表
  //初始化MP3播放
  pvInitMp3(hInstance, pnlMediaDis.Handle, pnlMediaDis.Width, pnlMediaDis.Height, 32);
end;

//========主窗口释放
procedure TFrmMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  BorderIcons := BorderIcons + [biMaximize];//防止程序退出后会在任务栏中留下一个任务空格
  WriteIni ;
  pvFreeMp3 ;//释放MP3播放资源
end;

//==========窗口退出
procedure TFrmMain.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  with suiMessageDialog1 do
  begin
    Caption := suiForm1.Caption ;
    Button1Caption := '是';
    Button2Caption := '否';
    ButtonCount := 2 ;
    Button1ModalResult := mrYes ;
    Button2ModalResult := mrNo ;
    IconType := suiHelp ;
    Text := '是否退出销售帐目管理?';
    if ShowModal = MrNo then CanClose := False ;
  end;
end;

//========MP3播放
procedure TFrmMain.BtnMediaPlayClick(Sender: TObject);
var i,Count : integer ;//歌曲播放侦数
begin
  if ((P_SongIndex < Low(Pub_SongListArr)) and
      (P_SongIndex > High(Pub_SongListArr))) then Exit ;
  P_SongName := Pub_SongListArr[P_SongIndex].SongName ;
  P_SongFile := Pub_songListArr[P_SongIndex].FileName ;
  pvStopMp3;
  pvGetMp3Info(pchar(P_SongFile), @SongFreq, @SongTimelong);
  pvPlayMp3(PChar(P_SongFile));
  pnlSongName.Caption := P_SongName ;
  PlayStatus := MP3PLAY ;//切换播放状态
  PlayTimeLong := 0 ;//已经播放时间
  iLedBar1.PositionMax := SongTimeLong ;
  iLedBar1.PositionMin := PlayTimeLong ;
  tmr1.Enabled := True ;
  Count := suiSongMenu.Items.Count ;
  for i := 0 to Count - 1 do suiSongMenu.Items[i].Checked := False ;
  suiSongMenu.Items[P_SongIndex].Checked := True ;
  BtnMediaPause.Enabled := True ;
  BtnMediaStop.Enabled := True ;
end;

//========暂停Mp3播放
procedure TFrmMain.BtnMediaPauseClick(Sender: TObject);
begin
  case PlayStatus of
    MP3PLAY :
      begin
        pvPauseMp3 ;//暂停MP3播放
        PlayStatus := MP3PAUSE ; //切换状态
        BtnMediaPause.Hint := '恢复播放';
      end;
    MP3PAUSE :
      begin
        pvResumeMp3 ;
        PlayStatus := MP3PLAY ; //切换状态到播放
        BtnMediaPause.Hint := '暂停播放';
      end;
  end;
end;

//========停止MP3播放
procedure TFrmMain.BtnMediaStopClick(Sender: TObject);
begin
  pvStopMp3 ;//停止MP3播放
  PlayStatus := MP3STOP ;
  iLedBar1.Position := 0 ;
end;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?