📄 backmainfrm.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 + -