?? unit1.pas
字號:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls,TermSet, ComCtrls,Term,Contnrs,shellapi,
ImgList, Menus;
const
mousemsg = wm_user + 345; //自定義消息,用于處理用戶在圖標上點擊鼠標的事件
iid = 100;
type
TMainForm = class(TForm)
Timer1: TTimer;
Button2: TButton;
Label1: TLabel;
PopupMenu1: TPopupMenu;
menu_start: TMenuItem;
menu_stop: TMenuItem;
N1: TMenuItem;
menu_status: TMenuItem;
ImageList1: TImageList;
N2: TMenuItem;
Timer2: TTimer;
Timer3: TTimer;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure menu_startClick(Sender: TObject);
procedure menu_stopClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure menu_statusClick(Sender: TObject);
procedure Timer2Timer(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure Timer3Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
term_set:TTermSet;
//procedure add_term_to_listview;
procedure AppMinimize(Sender: TObject);
procedure mousemessage(var message: tmessage); message mousemsg;
end;
var
MainForm: TMainForm;
time_count:integer;
ntida: TNotifyIcondata;
form3_show:boolean;
implementation
uses TcpMod, Unit2, Unit3, record_define, Gprs_Interface;
{$R *.dfm}
procedure TMainForm.FormCreate(Sender: TObject);
var
hwnd1:hwnd;
icc:TIcon;
begin
//****************************************************************
//added for opc Server 2004-11-13 by HF
GPRS_Intf:= TGPRS_Intf.Create;
GPRS_Intf.Reg(Application.ExeName);
//****************************************************************
write_text('啟動程序 '+FormatDateTime('yyyy-mm-dd hh:mm:ss', Now));
term_set:=TTermSet.Create;
term_set.init;
form3_show:=false;
hwnd1:=findwindow('Progman',nil);
if hwnd1<>0 then
begin
ntida.cbSize := sizeof(tnotifyicondataa);
//指定ntida的長度
ntida.Wnd := handle;
//取應用程序主窗體的句柄
ntida.uID := iid;
//用戶自定義的一個數值,在uCallbackMessage參數指定的消息中使用
ntida.uFlags := nif_icon or nif_tip or nif_message;
//指定在該結構中uCallbackMessage、hIcon和szTip參數都有效
ntida.uCallbackMessage := mousemsg;
//指定的窗口消息
//ntida.hIcon := Icon.handle;
icc:=TIcon.Create;
self.ImageList1.GetIcon(1,icc);
ntida.hIcon :=icc.Handle;
//指定系統狀態欄顯示應用程序的圖標句柄
ntida.szTip := '數據采集';
//當鼠標停留在系統狀態欄該圖標上時,出現該提示信息
shell_notifyicon(NIM_ADD, @ntida);
//在系統狀態欄增加一個新圖標
setwindowlong(application.Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);
end;
end;
procedure TMainForm.FormDestroy(Sender: TObject);
begin
//****************************************************************
//added for opc Server 2004-11-13 by HF
if Assigned(GPRS_Intf) then
GPRS_Intf.Free;
//****************************************************************
term_set.Destroy;
end;
procedure TMainForm.Timer1Timer(Sender: TObject);
begin
time_count:=time_count+Timer1.Interval div 1000;
time_count:=time_count mod 600;
term_set.check_task;
if time_count=0 then
TcpModule.refresh;
end;
procedure TMainForm.Button2Click(Sender: TObject);
begin
//self.term_set.check_task;
//self.Timer1.Enabled:=true;
end;
{procedure TMainForm.add_term_to_listview;
var
i:integer;
listitem:TListItem;
term_obj:TTerm;
begin
ListView1.Clear;
for i:=0 to term_set.members.Count-1 do
begin
term_obj:=TTerm(term_set.members.Items[i]);
listitem:=mainform.ListView1.Items.Add;
listitem.Caption:=inttostr(term_obj.gprs_id);
listitem.SubItems.Add(inttostr(term_obj.term_id));
listitem.SubItems.Add(inttostr(term_obj.app_id));
listitem.SubItems.Add(inttostr(term_obj.packet_inteval));
listitem.SubItems.Add(inttostr(term_obj.summit_type));
listitem.SubItems.Add(inttostr(term_obj.second_count));
end;
end; }
procedure TMainForm.AppMinimize(Sender: TObject);
begin
inherited;
self.Hide;
end;
procedure TMainForm.mousemessage(var message: tmessage);
var
mousept: TPoint;
begin
inherited;
if message.LParam ={WM_LBUTTONDBLCLK}WM_RBUTTONDOWN then
begin
getcursorpos(mousept); //獲取光標位置
setforegroundwindow(handle);
popupmenu1.popup(mousept.x, mousept.y);
end;
message.Result := 0;
end;
procedure TMainForm.menu_startClick(Sender: TObject);
var
icc:TIcon;
begin
self.Timer1.Enabled:=true;
icc:=TIcon.Create;
self.ImageList1.GetIcon(1,icc);
ntida.hIcon :=icc.Handle;
ntida.szTip :='數據采集';
shell_notifyicon(NIM_MODIFY, @ntida);
end;
procedure TMainForm.menu_stopClick(Sender: TObject);
var
icc:TIcon;
begin
self.Timer1.Enabled:=false;
icc:=TIcon.Create;
self.ImageList1.GetIcon(0,icc);
ntida.hIcon :=icc.Handle;
ntida.szTip :='數據采集停止';
shell_notifyicon(NIM_MODIFY, @ntida);
end;
procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Shell_NotifyIcon(NIM_DELETE,@ntida)
end;
procedure TMainForm.menu_statusClick(Sender: TObject);
begin
self.Close;
write_text('退出程序 '+FormatDateTime('yyyy-mm-dd hh:mm:ss', Now));
end;
procedure TMainForm.Timer2Timer(Sender: TObject);
begin
form2.Show;
self.Timer2.Enabled:=false;
end;
procedure TMainForm.N2Click(Sender: TObject);
begin
Application.CreateForm(TForm3, Form3);
Form3.Show;
form3_show:=true;
end;
procedure TMainForm.Timer3Timer(Sender: TObject);
var
i:integer;
begin
for i:=0 to self.term_set.members.Count-1 do
TTerm(self.term_set.members.Items[i]).write_info_data;
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -