📄 unit2.~pas
字号:
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, ComCtrls, ExtCtrls, ToolWin, jpeg, StdCtrls, shellapi;
const
WM_MIDASICON = WM_USER + 1;
UI_INITIALIZE = WM_MIDASICON + 1;
type
TZongJieMian = class(TForm)
StatusBar1: TStatusBar;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
N10: TMenuItem;
N11: TMenuItem;
N12: TMenuItem;
N13: TMenuItem;
N14: TMenuItem;
ToolBar1: TToolBar;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
ToolButton5: TToolButton;
ToolButton6: TToolButton;
ToolButton7: TToolButton;
ToolButton8: TToolButton;
ToolButton9: TToolButton;
ToolButton10: TToolButton;
ToolButton11: TToolButton;
Image1: TImage;
N15: TMenuItem;
N16: TMenuItem;
N17: TMenuItem;
N18: TMenuItem;
Timer1: TTimer;
PopupMenu1: TPopupMenu;
Normal: TMenuItem;
mini: TMenuItem;
max: TMenuItem;
CloseN: TMenuItem;
N19: TMenuItem;
N20: TMenuItem;
procedure N5Click(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure N14Click(Sender: TObject);
procedure ToolButton4Click(Sender: TObject);
procedure N7Click(Sender: TObject);
procedure N9Click(Sender: TObject);
procedure ToolButton7Click(Sender: TObject);
procedure N16Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure N18Click(Sender: TObject);
procedure N12Click(Sender: TObject);
procedure N13Click(Sender: TObject);
procedure N17Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure PopupMenu1Popup(Sender: TObject);
procedure CloseNClick(Sender: TObject);
procedure maxClick(Sender: TObject);
procedure miniClick(Sender: TObject);
procedure NormalClick(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure N20Click(Sender: TObject);
private
///////////用来记录每隔几次循环一次////////////////
icount:integer;
Procedure WMSysCommand(Var message : TMessage) ; Message WM_SYSCOMMAND ;
procedure WMMIDASIcon(var Message: TMessage); message WM_MIDASICON;
{ Private declarations }
public
/////窗口不动的函数
procedure OnPosChange(var Msg:TWmWindowPosChanging); MESSAGE wm_windowposchanging;
{ Public declarations }
end;
const
/////自定义一个鼠标动作的消息
MI_ICONEVENT=WM_USER+1;
WM_TRAYNOTIFY=2000;
MY_TRAY_ICON=1000;
var
ZongJieMian: TZongJieMian;
MyNotifyStruct: TNotifyIconData;
implementation
uses Unit1, Unit3, Unit4, Unit5, Unit6, Unit8, Unit9, Unit7, Unit11,
Unit12;
{$R *.dfm}
procedure TZongJieMian.N5Click(Sender: TObject);
begin
QuanXian.show;
end;
procedure TZongJieMian.ToolButton1Click(Sender: TObject);
begin
TianJia.show;
end;
procedure TZongJieMian.N6Click(Sender: TObject);
begin
TianJia.show;
end;
procedure TZongJieMian.N14Click(Sender: TObject);
begin
ZongJieMian.Close;
end;
procedure TZongJieMian.ToolButton4Click(Sender: TObject);
begin
GengGaiXinXi.show;
end;
procedure TZongJieMian.N7Click(Sender: TObject);
begin
GengGaiXinXi.show;
end;
procedure TZongJieMian.N9Click(Sender: TObject);
begin
ChaXun.show;
end;
procedure TZongJieMian.ToolButton7Click(Sender: TObject);
begin
ChaXun.show;
end;
procedure TZongJieMian.N16Click(Sender: TObject);
begin
GouPiao.show;
end;
procedure TZongJieMian.FormCreate(Sender: TObject);
begin
//****这里用于显示托盘上的图标,要用到SHELLAPI函数写在USES里面
//******再定义一个CONST MI_ICONEVENT=WM_USER+1;再VAR一下,定义一个: MyNotifyStruct: TNotifyIconData;****///
with MyNotifyStruct do
begin
cbSize:=sizeof(MyNotifyStruct);
Wnd:=Handle;
Uid:=1;
uFlags:=NIF_ICON or NIF_TIP OR NIF_MESSAGE;
uCallbackMessage:=MI_ICONEVENT;
/////程序初始化时使用的是DILPHI7自带的图标
hIcon:=application.icon.handle;
/////鼠标经过时显示汉字
sztip:='航空信息管理系统';
end;
shell_notifyicon(nim_add,@mynotifystruct);
showwindow(application.handle,sw_hide);
statusbar1.panels[3].Text:=formatdatetime('hh:mm:ss',Now());
statusbar1.panels[4].Text:=' 欢迎使用,祝工作顺利!';
end;
procedure TZongJieMian.FormShow(Sender: TObject);
begin
timer1.Enabled:=true;
icount:=0;
statusbar1.Panels[1].Text:=DengLu.Edit2.Text;
end;
procedure TZongJieMian.N18Click(Sender: TObject);
begin
DanXiangChaXun.show;
end;
procedure TZongJieMian.N12Click(Sender: TObject);
begin
AboutBox.show;
end;
////////这里用于打开CHM文件,不要忘记要在上面的USES里面加入 shellapi/////呵呵////
procedure TZongJieMian.N13Click(Sender: TObject);
begin
ShellExecute(Handle,'open',pchar(ExtractFilePath(Application.ExeName)+'航空信息管理系统.chm'),nil,nil,SW_MAXIMIZE);
// WinExec('航空信息管理系统.chm',SW_NORMAL);
end;
procedure TZongJieMian.N17Click(Sender: TObject);
begin
TuiPiao.show;
end;
procedure TZongJieMian.Button1Click(Sender: TObject);
begin
BaoBiaoDaYin.show;
end;
procedure TZongJieMian.Button2Click(Sender: TObject);
begin
SetWindowLong(Handle,GWL_STYLE,GetWindowLong(Handle,GWL_EXSTYLE) or (WS_CAPTION));
Height:=ClientHeight;
Width:=ClientWidth;
end;
procedure TZongJieMian.OnPosChange(var Msg: TWmWindowPosChanging);
begin
//Msg.WindowPos.x:=left;
//MSG.WindowPos.y:=TOP;
//MSG.Result:=0;
end;
procedure TZongJieMian.PopupMenu1Popup(Sender: TObject);
begin
end;
///////这里可以实现窗口像WINDOWS那样逐渐变小再变消失//////////////
procedure TZongJieMian.WMSysCommand(var Message: TMessage);
begin
if (Message.WParam = SC_MINIMIZE) then
begin
ZongJieMian.windowstate := wsMinimized;
hide;
end
else
Inherited;
end;
procedure TZongJieMian.WMMIDASIcon(var Message: TMessage);
var
pt: TPoint;
begin
case Message.LParam of
WM_RBUTTONUP:
begin
if not Visible then
begin
SetForegroundWindow(Handle);
GetCursorPos(pt);
PopupMenu.Popup(pt.x, pt.y);
end else
SetForegroundWindow(Handle);
end;
WM_LBUTTONDBLCLK:
if Visible then
SetForegroundWindow(Handle)
else
show;
end;
end;
////////这里是用于退出程序,当退出时,图标也跟着一起退出托盘图中..............
procedure TZongJieMian.CloseNClick(Sender: TObject);
begin
Shell_NotifyIcon(NIM_DELETE, @mynotifystruct);
ZongJieMian.Close;
end;
procedure TZongJieMian.maxClick(Sender: TObject);
begin
ZongJieMian.Show;
ZongJieMian.WindowState:=wsMaximized;
end;
procedure TZongJieMian.miniClick(Sender: TObject);
begin
ZongJieMian.Show;
ZongJieMian.WindowState:=wsMinimized;
end;
procedure TZongJieMian.NormalClick(Sender: TObject);
begin
ZongJieMian.Repaint;
ZongJieMian.Width:=1024;
ZongJieMian.Height:=740;
ZongJieMian.Show;
ZongJieMian.WindowState:=wsNormal;
end;
procedure TZongJieMian.Timer1Timer(Sender: TObject);
begin
/////////2S定时到了,将定时器关闭////////////
timer1.Enabled:=false;
icount:=icount+1;
////每隔四次循环一次//////////////////
if icount>4 then icount:=1;
case icount of
///////////////依次变换四种状态///////////////
1:MyNotifyStruct.hIcon:=LoadIcon(hinstance,'ARROWA');
2:MyNotifyStruct.hIcon:=LoadIcon(hinstance,'ARROWB');
3:MyNotifyStruct.hIcon:=LoadIcon(hinstance,'ARROWC');
4:MyNotifyStruct.hIcon:=LoadIcon(hinstance,'ARROWD');
end;
SHELL_NOTIFYICON(NIM_MODIFY,@MYNOTIFYSTRUCT);
TIMER1.Enabled:=TRUE;
end;
procedure TZongJieMian.N20Click(Sender: TObject);
begin
BaoBiaoDaYin.Show;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -