📄 gis.txt
字号:
AddComboBoxColors(Controls[I] as TWinControl); //递归调用
end;
end;
end;
/////////////////////////////////////////////////////////////////////
// Color comboboxes OnDrawItem 事件处理程序
/////////////////////////////////////////////////////////////////////
procedure TMainForm.DrawColorItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
var
ColorRect: TRect;
OriginColor: TColor;
begin
ColorRect := Classes.Rect(Rect.Left + 4,
Rect.Top + 2,
Rect.Right - 4,
Rect.Bottom - 2);
with Control as TComboBox do
begin
Canvas.Brush.Color := TColor((Control as TComboBox).Items.Objects[Index]);
OriginColor := Canvas.Brush.Color;
Canvas.FillRect(ColorRect);
if odFocused in State then
begin
Canvas.Brush.Color := clHighlight;
Canvas.FillRect(Rect);
Canvas.Brush.Color := OriginColor;
Canvas.FillRect(ColorRect);
Canvas.Pen.Color := clWindow;
end else begin
Canvas.Brush.Color := clWindow;
Canvas.FillRect(Rect);
Canvas.Brush.Color := OriginColor;
Canvas.FillRect(ColorRect);
end;
end;
end;
////////////////////////////////////////////////////////////////////
// 切换监控状态
///////////////////////////////////////////////////////////////////
procedure TMainForm.sbnSingleClick(Sender: TObject);
begin
if Sender = sbnSingle then
ActiveGpsCtrl.MonitorType := MONITORTYPE_SINGLE
else if Sender = sbnMulti then
ActiveGpsCtrl.MonitorType := MONITORTYPE_MULTI
else if Sender = sbnRegion then
ActiveGpsCtrl.MonitorType := MONITORTYPE_AREA
else
ActiveGpsCtrl.MonitorType := MONITORTYPE_NOT
end;
/////////////////////////////////////////////////////////////////
// 去零漂
////////////////////////////////////////////////////////////////
procedure TMainForm.cbDisableMoveOnQuietClick(Sender: TObject);
begin
GpsManager.DisableMoveOnQuiet := cbDisableMoveOnQuiet.Checked;
end;
/////////////////////////////////////////////////////////////////
// 去零漂速度限制
////////////////////////////////////////////////////////////////
procedure TMainForm.edtSpeedLimitChange(Sender: TObject);
begin
try
GpsManager.SpeedLimit := StrToInt(edtSpeedLimit.Text);
except
end;
end;
/////////////////////////////////////////////////////////////////
// 正常状态下目标名称的前景色
////////////////////////////////////////////////////////////////
procedure TMainForm.cbbNormalFgChange(Sender: TObject);
begin
GpsManager.TargetNameNormalFontColor :=
TColor(cbbNormalFg.Items.Objects[cbbNormalFg.ItemIndex]);
end;
/////////////////////////////////////////////////////////////////
// 正常状态下目标名称的背景色
////////////////////////////////////////////////////////////////
procedure TMainForm.cbbNormalBgChange(Sender: TObject);
begin
GpsManager.TargetNameNormalFontColor :=
TColor(cbbNormalBg.Items.Objects[cbbNormalBg.ItemIndex]);
end;
/////////////////////////////////////////////////////////////////
// 目标激活时目标名称的前景色
////////////////////////////////////////////////////////////////
procedure TMainForm.cbbActiveFgChange(Sender: TObject);
begin
GpsManager.TargetNameActiveFontColor :=
TColor(cbbActiveFg.Items.Objects[cbbActiveFg.ItemIndex]);
end;
/////////////////////////////////////////////////////////////////
// 目标激活时目标名称的背景色
////////////////////////////////////////////////////////////////
procedure TMainForm.cbbActiveBgChange(Sender: TObject);
begin
GpsManager.TargetNameActiveBackColor :=
TColor(cbbActiveBg.Items.Objects[cbbActiveBg.ItemIndex]);
end;
/////////////////////////////////////////////////////////////////
// 目标符号宽度
////////////////////////////////////////////////////////////////
procedure TMainForm.edtSymbolWidthChange(Sender: TObject);
begin
try
GpsManager.CarSymbolWidth := StrToInt(edtSymbolWidth.Text);
except
end;
end;
/////////////////////////////////////////////////////////////////
// 目标符号高度
////////////////////////////////////////////////////////////////
procedure TMainForm.edtSymbolHeightChange(Sender: TObject);
begin
try
GpsManager.CarSymbolHeight := StrToInt(edtSymbolHeight.Text);
except
end;
end;
/////////////////////////////////////////////////////////////////
// 目标名称显示位置
////////////////////////////////////////////////////////////////
procedure TMainForm.cbbCaptionPosChange(Sender: TObject);
begin
GpsManager.ShowCarNamePos :=
Integer(cbbCaptionPos.Items.Objects[cbbCaptionPos.ItemIndex]);
end;
/////////////////////////////////////////////////////////////////
// 误差圈颜色
////////////////////////////////////////////////////////////////
procedure TMainForm.cbbErrCircleColorChange(Sender: TObject);
begin
GpsManager.ErrRoundColor :=
TColor(cbbErrCircleColor.Items.Objects[cbbErrCircleColor.ItemIndex]);
end;
/////////////////////////////////////////////////////////////////
// 误差圈半径
////////////////////////////////////////////////////////////////
procedure TMainForm.edtErrorCircleRadiusChange(Sender: TObject);
begin
try
GpsManager.ErrorRoundRadius := StrToInt(edtErrorCircleRadius.Text);
except
end;
end;
/////////////////////////////////////////////////////////////////
// 误差圈线宽度
////////////////////////////////////////////////////////////////
procedure TMainForm.edtErrorCircleWidthChange(Sender: TObject);
begin
try
GpsManager.ErrRoundWidth := StrToInt(edtErrorCircleWidth.Text);
except
end;
end;
/////////////////////////////////////////////////////////////////
// 自动换图
////////////////////////////////////////////////////////////////
procedure TMainForm.cbAutoChangeMapClick(Sender: TObject);
begin
ActiveGpsCtrl.AutoChangeMap := Ord(cbAutoChangeMap.Checked);
end;
/////////////////////////////////////////////////////////////////
// 显示标尺
////////////////////////////////////////////////////////////////
procedure TMainForm.cbShowRulerClick(Sender: TObject);
begin
ActiveGpsCtrl.ShowRuler := cbShowRuler.Checked;
end;
/////////////////////////////////////////////////////////////////
// 显示比例尺
////////////////////////////////////////////////////////////////
procedure TMainForm.cbShowScaleClick(Sender: TObject);
begin
ActiveGpsCtrl.ShowScale := Ord(cbShowScale.Checked);
end;
/////////////////////////////////////////////////////////////////
// 显示影像图
////////////////////////////////////////////////////////////////
procedure TMainForm.cbShowImageClick(Sender: TObject);
begin
ActiveGpsCtrl.ShowImage := cbShowImage.Checked;
end;
/////////////////////////////////////////////////////////////////
// 标尺前景色
////////////////////////////////////////////////////////////////
procedure TMainForm.cbbRulerColorFgChange(Sender: TObject);
begin
GpsManager.RulerForeColor :=
TColor(cbbRulerColorFg.Items.Objects[cbbRulerColorFg.ItemIndex]);
end;
/////////////////////////////////////////////////////////////////
// 标尺背景色
////////////////////////////////////////////////////////////////
procedure TMainForm.cbbRulerColorBgChange(Sender: TObject);
begin
GpsManager.RulerBackColor :=
TColor(cbbRulerColorBg.Items.Objects[cbbRulerColorBg.ItemIndex]);
end;
/////////////////////////////////////////////////////////////////
// 目标平滑移动
////////////////////////////////////////////////////////////////
procedure TMainForm.cbSmoothTargetClick(Sender: TObject);
begin
ActiveGpsCtrl.SmoothPan := cbSmoothTarget.Checked;
end;
/////////////////////////////////////////////////////////////////
// 显示目标名称
////////////////////////////////////////////////////////////////
procedure TMainForm.cbShowTargetNameClick(Sender: TObject);
begin
ActiveGpsCtrl.ShowTargetName := Ord(cbShowTargetName.Checked);
end;
/////////////////////////////////////////////////////////////////
// 显示轨迹
////////////////////////////////////////////////////////////////
procedure TMainForm.cbShowTailClick(Sender: TObject);
begin
ActiveGpsCtrl.ShowTail := Ord(cbShowTail.Checked);
end;
/////////////////////////////////////////////////////////////////
// 显示误差圈
////////////////////////////////////////////////////////////////
procedure TMainForm.cbShowErrorCircleClick(Sender: TObject);
begin
ActiveGpsCtrl.ShowErrorRound := Ord(cbShowErrorCircle.Checked);
end;
/////////////////////////////////////////////////////////////////
// 绝对运动
////////////////////////////////////////////////////////////////
procedure TMainForm.cbAbsoluteMoveClick(Sender: TObject);
begin
ActiveGpsCtrl.MoveAbsolute := Ord(cbAbsoluteMove.Checked);
end;
/////////////////////////////////////////////////////////////////
// 道路匹配
////////////////////////////////////////////////////////////////
procedure TMainForm.cbMatchRoadClick(Sender: TObject);
begin
ActiveGpsCtrl.GetRoad := Ord(cbMatchRoad.Checked);
end;
/////////////////////////////////////////////////////////////////
// 放大镜高度
////////////////////////////////////////////////////////////////
procedure TMainForm.edtMagnifierHChange(Sender: TObject);
begin
try
GpsManager.MagnifierHeight := StrToInt(edtMagnifierH.Text);
except
end;
end;
/////////////////////////////////////////////////////////////////
// 放大镜宽度
////////////////////////////////////////////////////////////////
procedure TMainForm.edtMagnifierWChange(Sender: TObject);
begin
try
GpsManager.MagnifierWidth := StrToInt(edtMagnifierW.Text);
except
end;
end;
/////////////////////////////////////////////////////////////////
// 放大镜倍数
////////////////////////////////////////////////////////////////
procedure TMainForm.edtMagnifierRatioChange(Sender: TObject);
begin
try
GpsManager.MagnifierTime := StrToInt(edtMagnifierRatio.Text);
except
end;
end;
/////////////////////////////////////////////////////////////////
// 轨迹点颜色
////////////////////////////////////////////////////////////////
procedure TMainForm.cbbPointColorChange(Sender: TObject);
begin
GpsManager.TailLPointColor :=
TColor(cbbPointColor.Items.Objects[cbbPointColor.ItemIndex]);
end;
/////////////////////////////////////////////////////////////////
// 轨迹线颜色
////////////////////////////////////////////////////////////////
procedure TMainForm.cbbLineColorChange(Sender: TObject);
begin
GpsManager.TailLineColor :=
TColor(cbbLineColor.Items.Objects[cbbLineColor.ItemIndex]);
end;
/////////////////////////////////////////////////////////////////
// 轨迹点半径
////////////////////////////////////////////////////////////////
procedure TMainForm.edtPointRadiusChange(Sender: TObject);
begin
try
GpsManager.TailPointSize := StrToInt(edtPointRadius.Text);
except
end;
end;
/////////////////////////////////////////////////////////////////
// 轨迹线宽度
////////////////////////////////////////////////////////////////
procedure TMainForm.edtLineWidthChange(Sender: TObject);
begin
try
GpsManager.TailLineWidth := StrToInt(edtLineWidth.Text);
except
end;
end;
/////////////////////////////////////////////////////////////////
// 显示轨迹线
////////////////////////////////////////////////////////////////
procedure TMainForm.cbShowTailLineClick(Sender: TObject);
begin
GpsManager.ShowTailLine := Ord(cbShowTailLine.Checked);
end;
/////////////////////////////////////////////////////////////////
// 显示轨迹点
////////////////////////////////////////////////////////////////
procedure TMainForm.cbShowTailPointClick(Sender: TObject);
begin
GpsManager.ShowTailPoint := Ord(cbShowTailPoint.Checked);
end;
/////////////////////////////////////////////////////////////////
// 模糊查询
////////////////////////////////////////////////////////////////
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;
///////////////////////////////////////////////////////////////////////////////
// 查询结果显示
///////////////////////////////////////////////////////////////////////////////
procedure TMainForm.lbQueryResultClick(Sender: TObject);
var
Selection: IRTPkgSelection;
begin
if lbQueryResult.ItemIndex >= 0 then
begin
Selection := PkgSelections.GetSelectObject(lbQueryResult.ItemIndex);
ActiveGpsCtrl.SelectPkgObj(Selection);
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -