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

📄 backmainfrm.pas

📁 NetHook API 对战平台内核库是一套实现时下流行的网络对战平台[如浩方、VS]同样功能的通用内核库
💻 PAS
字号:
unit BackMainFrm;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, Menus, WinSkinData, WinSkinStore;

const
  WM_EXIT_PROGRAM = WM_USER + 1;

type
  TBackMainForm = class(TForm)
    TimerShowLoginFrm: TTimer;
    MainTrayIcon: TTrayIcon;
    UpgradeTimer: TTimer;
    PopupMenuTray: TPopupMenu;
    ShowMainFormItem: TMenuItem;
    ExitSytemItem: TMenuItem;
    SkinStoreMain: TSkinStore;
    SkinDataMain: TSkinData;
    SelectSkinItem: TMenuItem;
    XPVistaItem: TMenuItem;
    Office2003Item: TMenuItem;
    MSNItem: TMenuItem;
    N2: TMenuItem;
    OliveXPItem: TMenuItem;
    Vista1: TMenuItem;
    procedure TimerShowLoginFrmTimer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure ShowMainFormItemClick(Sender: TObject);
    procedure UpgradeTimerTimer(Sender: TObject);
    procedure ExitSytemItemClick(Sender: TObject);

    procedure SkinItemClick(Sender: TObject);
    procedure MainTrayIconDblClick(Sender: TObject);
  private
    FCurSkinIndex: Integer;

    procedure RunUpgrader;
    procedure WmExitProgram(var Message: TMessage); message WM_EXIT_PROGRAM;
  public

  end;

var
  BackMainForm: TBackMainForm;

implementation

uses LoginFrm, MainFrm, NhcNetManager, NhcNetBusiness, ProjectUtils, NhConfigMgr,
  NhPubUtils, NhcConfig;

{$R *.dfm}

procedure TBackMainForm.ExitSytemItemClick(Sender: TObject);
var
  MsgRet: Integer;
begin
  MsgRet := MessageBox(Handle, '确实要退出?', '提示信息', MB_ICONQUESTION+MB_YESNO);

  if MsgRet = mrYes then
  begin
    if Assigned(MainForm) then
      MainForm.Close;
    BackMainForm.Close;
  end;
end;

procedure TBackMainForm.FormCreate(Sender: TObject);
begin
  Self.Width := 0;
  Self.Height := 0;

  NetMgr.Initialize;

  FCurSkinIndex := ConfigMgr.SkinIndex;
  SelectSkinItem.Items[FCurSkinIndex].Checked := True;
  SkinDataMain.LoadFromCollection(SkinStoreMain, FCurSkinIndex);

  TimerShowLoginFrm.Enabled := True;
end;

procedure TBackMainForm.FormDestroy(Sender: TObject);
begin
  NetMgr.Finalize;
end;

procedure TBackMainForm.MainTrayIconDblClick(Sender: TObject);
begin
  MainForm.Show;
  SetForegroundWindow(MainForm.Handle);
end;

procedure TBackMainForm.ShowMainFormItemClick(Sender: TObject);
begin
  MainForm.Show;
  SetForegroundWindow(MainForm.Handle);
end;

procedure TBackMainForm.SkinItemClick(Sender: TObject);
var
  Index: Integer;
begin
  Index := (Sender as TMenuItem).MenuIndex;
  if Index <> FCurSkinIndex then
  begin
    FCurSkinIndex := Index;
    ConfigMgr.SkinIndex := FCurSkinIndex;
    ConfigMgr.Save;

    if MainForm.WindowState = wsMinimized then
      MainForm.WindowState := wsNormal;
    MainForm.Show;
    SetForegroundWindow(MainForm.Handle);
    SkinDataMain.LoadFromCollection(SkinStoreMain, Index);
  end else begin
    (Sender as TMenuItem).Checked := True;
  end;
end;

procedure TBackMainForm.TimerShowLoginFrmTimer(Sender: TObject);
var
  NeedTerminate: Boolean;
begin
  TimerShowLoginFrm.Enabled := False;

  if not ShowLoginForm(True, False, NeedTerminate) then
  begin
    Application.Terminate;
  end else
  begin
    MainForm.Show;
    SetForegroundWindow(MainForm.Handle);
  end;
end;

procedure TBackMainForm.UpgradeTimerTimer(Sender: TObject);
begin
  UpgradeTimer.Enabled := False;
  RunUpgrader;
end;

procedure TBackMainForm.WmExitProgram(var Message: TMessage);
begin
  Application.Terminate;
end;

procedure TBackMainForm.RunUpgrader;
var
  UpgradeUrl, UpgradeExe: string;
begin
  UpgradeExe := GetAppPath + 'LiveUpdate.exe';
  UpgradeUrl := ConfigMgr.UpgradeUrl;
  RunAutoUpgrader(UpgradeExe, UpgradeUrl, Self.Handle, WM_EXIT_PROGRAM);
end;

end.

⌨️ 快捷键说明

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