4)為按鈕“接收”添加代碼:
messagebeep(1);
editlatitude.Text:=''; //接收前先清除顯示內容
editlongitude.Text:='';
editycoord.Text:='';
editxcoord.Text:='';
timer1.Enabled:= true; //打開計時器
5)為按鈕“斷開”添中代碼:
messagebeep(1);
editlatitude.Text:=''; //清除顯示內容
editlongitude.Text:='';
editycoord.Text:='';
editxcoord.Text:='';
timer1.Enabled:= false; //關閉計時器
6)為按鈕“返回”添加代碼:
procedure Tmainfrm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if application.MessageBox('您真的想退出嗎?','GPS輸入',mb_okcancel)=idok then begin
timer1.Enabled:=false;
if mscomm1.PortOpen then
mscomm1.PortOpen:=false;
gpsstrlist.Free;
action:=cafree;
end
else
action:=canone;
end;
3、討論
本文利用MSCOMM控件成功地接收到了GPS的定位數據,效果良好,在實際應用中,由於GPS的數據處理比數據采集速度要慢,微機和GPS的通信有可能阻塞,且在系統中一台微機可能要接收多個GPS接收機的定位數據,所以應當考慮采用多線程機制,以避免資源沖突。
本程序在Windows 2000(CHN)和Delphi 5.0下通過。