📄 gis.txt
字号:
end;
/////////////////////////////////////////////////////////////////
// GPS模拟数据定时器处理程序
/////////////////////////////////////////////////////////////////
procedure TMainForm.tmrGpsDataTimer(Sender: TObject);
var
I, Index: Integer;
begin
for I := 0 to PollingTargets.Count - 1 do
begin
Index := Integer(PollingTargets[I]);
if gIndex[Index] > EmuGpsData[Index].Count then
gIndex[Index] := 0;
PostMessage(Handle,
WM_GPSDATA,
0,
LPARAM(EmuGpsData[Index].Items[gIndex[Index]]));
Inc(gIndex[Index]);
end;
end;
//////////////////////////////////////////////////////////////////////
// WM_GPSDATA消息处理程序
/////////////////////////////////////////////////////////////////////
procedure TMainForm.WmGpsData(var Msg: TMessage);
var
GpsData: PGpsData;
ATarget: GpsTarget;
TargetID: Longint;
H, M, S, MS: Word;
T: TTime;
begin
GpsData := PGpsData(Msg.LParam);
TargetID := GpsData^.lTargetID;
T := Time;
DecodeTime(T, H, M, S, MS);
with GpsData^, gpsTime do
begin
hour := H;
min := M;
sec := S;
end;
try
(*******************************************************)
(* *)
GpsManager.GpsInterface.RecieveGpsData(GpsData^);
ATarget := GpsManager.GpsTargets.GetTarget(TargetID);
ATarget.TargetID := TargetID;
ATarget.Name := GetTargetName(TargetID);
(* *)
(*******************************************************)
if not (ActiveGpsCtrl = ReplayGpsCtrl) then
BindTargetData(ATarget);
except
end;
end;
//////////////////////////////////////////////////////////////////////
// WM_REPLAYDATA消息处理程序
/////////////////////////////////////////////////////////////////////
procedure TMainForm.WmReplayData(var Msg: TMessage);
var
GpsData: PGpsData;
ATarget: GpsTarget;
TargetID: Longint;
begin
GpsData := PGpsData(Msg.LParam);
TargetID := GpsData^.lTargetID;
try
(*******************************************************)
(* *)
ReplayGpsCtrl.GpsReplay.ReceiveReplayData(GpsData^);
(* *)
(*******************************************************)
ATarget := ReplayGpsCtrl.ReplayTargets.GetTarget(TargetID);
ATarget.Name := GetTargetName(TargetID);
if ActiveGpsCtrl = ReplayGpsCtrl then
BindTargetData(ATarget);
except
end;
end;
///////////////////////////////////////////////////////////
//LTGpsCtrl的OnGetReplayData事件处理程序,接收回放数据
///////////////////////////////////////////////////////////
procedure TMainForm.GetReplayData(Sender: TObject);
var
I, Index: Integer;
GpsData: TGpsData;
begin
if ReplayPaused then
Exit;
for I := 0 to ReplayTargets.Count - 1 do
begin
Index := Integer(ReplayTargets[I]);
if gReplayIndex[Index] > ReplayGpsData[Index].Count then
begin
gReplayIndex[Index] := 0;
ReplayGpsCtrl.StopReplay;
end;
PostMessage(Handle,
WM_REPLAYDATA,
0,
LPARAM(ReplayGpsData[Index].Items[gReplayIndex[Index]]));
Inc(gReplayIndex[Index]);
end;
end;
///////////////////////////////////////////////////////////////////////
// 激活目标
//////////////////////////////////////////////////////////////////////
procedure TMainForm.lvwTargetsMouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
ListItem: TListItem;
TargetID: Integer;
begin
ListItem := lvwTargets.GetItemAt(X, Y);
if ListItem <> nil then
begin
TargetID := Integer(ListItem.Data);
if TargetID >= 0 then
(**************************************************)
(* *)
GpsManager.CurrentWin.CurrentTargetID := TargetID;
(* *)
(**************************************************)
end;
end;
procedure TMainForm.FormResize(Sender: TObject);
begin
Tile;
end;
///////////////////////////////////////////////////////////
// 读入轨迹数据
///////////////////////////////////////////////////////////
procedure TMainForm.sbnOpenTrackClick(Sender: TObject);
var
ReplayDlg: TReplayDlg;
I: Integer;
TargetID: Longint;
begin
ReplayDlg := TReplayDlg.Create(Self);
for I := 0 to Length(Targets) - 1 do
ReplayDlg.clbTargets.Items.AddObject(Targets[I].Name, TObject(Targets[I].ID));
if ReplayDlg.ShowModal = mrOK then
begin
with ReplayDlg do
for I := 0 to clbTargets.Items.Count - 1 do
if clbTargets.Checked[I] then
begin
TargetID := Integer(clbTargets.Items.Objects[I]);
ReplayTargets.Add(Pointer(TargetID));
ReplayGpsData[TargetID].ReadGpsData(TargetID);
end;
ReplayGpsCtrl := TMonitorWin(ActiveMDIChild).GpsCtrl;
// TMonitorWin(ReplayGpsCtrl.Parent).Replaying := True;
ReplayGpsCtrl.OnGetReplayData := GetReplayData;
lvwTargets.Items.Clear;
for I := 0 to ReplayTargets.Count - 1 do
ReplayGpsCtrl.ReplayTargets.AddTargetID(Integer(ReplayTargets.Items[I]));
sbnStart.Enabled := True;
end;
end;
////////////////////////////////////////////////////////////
// 开始回放
////////////////////////////////////////////////////////////
procedure TMainForm.sbnStartClick(Sender: TObject);
begin
sbnStart.Enabled := False;
sbnPause.Enabled := True;
sbnStop.Enabled := True;
ReplayPaused := False;
ReplayGpsCtrl.StartReplay;
end;
/////////////////////////////////////////////////////////////
// 暂停回放
/////////////////////////////////////////////////////////////
procedure TMainForm.sbnPauseClick(Sender: TObject);
begin
ReplayPaused := True;
sbnPause.Enabled := False;
sbnStart.Enabled := True;
end;
///////////////////////////////////////////////////////////
// 停止回放
///////////////////////////////////////////////////////////
procedure TMainForm.sbnStopClick(Sender: TObject);
begin
sbnStart.Enabled := True;
sbnStop.Enabled := False;
sbnPause.Enabled := False;
ReplayGpsCtrl.StopReplay;
end;
////////////////////////////////////////////////////////////
// 改变回放速度
///////////////////////////////////////////////////////////
procedure TMainForm.tbrReplaySpeedChange(Sender: TObject);
begin
with Sender as TTrackBar do
if ReplayGpsCtrl <> nil then
ReplayGpsCtrl.ReplaySpeed := 1100 - Position * 100;
end;
procedure TMainForm.pgcControlPanelChange(Sender: TObject);
begin
end;
end.
procedure TForm1.Button2Click(Sender: TObject);
var
OpStruc: TSHFileOpStruct;
begin
// 设置OpStruc
with OpStruc do
begin
Wnd:=Form1.Handle;
wFunc:=FO_DELETE;
pFrom:=PChar(Edit1.Text);
fFlags:=FOF_ALLOWUNDO;
end;
SHFileOperation(OpStruc);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
opendialog1.Title:='源文件'; // 显示"打开源文件"对话框
if OpenDialog1.Execute then
edit1.Text:=opendialog1.FileName;
end;
name btnQuery
procedure TMainForm.btnQueryClick(Sender: TObject);
var
I: Integer;
begin
if edtQueryString.Text = '' then
Exit;
lbQueryResult.Items.Clear;
(*********************************************************************************)
(* 模糊查询 *)
PkgSelections := ActiveGpsCtrl.ControlInterface.QueryObscure(edtQueryString.Text);
(* *)
(*********************************************************************************)
//把查询结果加到列表框
PkgSelections.Begin_;
for I := 0 to PkgSelections.Count - 1 do
begin
lbQueryResult.Items.Add(PkgSelections.GetNext.Name);
end;
end;
name lbQueryResult
procedure TMainForm.lbQueryResultClick(Sender: TObject);
var
Selection: IRTPkgSelection;
begin
if lbQueryResult.ItemIndex >= 0 then
begin
Selection := PkgSelections.GetSelectObject(lbQueryResult.ItemIndex);
ActiveGpsCtrl.SelectPkgObj(Selection);
end;
end;
select [gis_data].[cheliangbianhao]
from [gis_data]
where [gis_data].[cheliangbianhao]='3' OR
[gis_data].[cheliangbianhao]='2' OR
[gis_data].[cheliangbianhao]='1'
procedure TForm1.N4Click(Sender: TObject);
begin
if opendialog1.Execute then
memo1.Lines.LoadFromFile(opendialog1.filename);
end;
procedure TForm1.N6Click(Sender: TObject);
begin
if savedialog1.Execute then
memo1.Lines.savetofile(savedialog1.filename);
end;
procedure TForm1.N7Click(Sender: TObject);
begin
close;
end;
procedure TForm1.N8Click(Sender: TObject);
begin
memo1.CutToClipboard;
end;
procedure TForm1.N9Click(Sender: TObject);
begin
memo1.copytoclipboard;
end;
procedure TForm1.N10Click(Sender: TObject);
begin
memo1.PasteFromClipboard;
end;
procedure TForm1.N11Click(Sender: TObject);
begin
memo1.SelectAll;
end;
procedure TForm1.N12Click(Sender: TObject);
begin
memo1.Clear;
end;
procedure TForm1.N13Click(Sender: TObject);
begin
if fontdialog1.Execute then
memo1.Font:=fontdialog1.Font;
end;
procedure TForm1.N14Click(Sender: TObject);
begin
finddialog1.Execute;
end;
procedure TForm1.FindDialog1Find(Sender: TObject);
var
ftext:string;
loc:integer;
begin
ftext:=finddialog1.FindText;
loc:=pos(ftext,memo1.lines.text);
if loc<>0 then
begin
memo1.SetFocus;
memo1.selstart:=loc-1;
memo1.sellength:=length(ftext);
end;
end;
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
if opendialog1.Execute then
memo1.Lines.LoadFromFile(opendialog1.filename);
end;
procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
if savedialog1.Execute then
memo1.Lines.savetofile(savedialog1.filename);
end;
procedure TForm1.SpeedButton3Click(Sender: TObject);
begin
memo1.PasteFromClipboard;
end;
procedure TForm1.SpeedButton4Click(Sender: TObject);
begin
memo1.CutToClipboard;
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -