⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ufrmsyssett.pas

📁 a voice guide client ,it is the second part of voice guide center
💻 PAS
📖 第 1 页 / 共 2 页
字号:
  begin
    cbGISBkgColor.ColorValue := active_viewer.Color;
    cbRulerBkgColor.ColorValue := active_map_frame.GIS_ControlScale1.Color;
    cbRulerInterColor1.ColorValue := active_map_frame.GIS_ControlScale1.InterColor1;
    cbRulerInterColor2.ColorValue := active_map_frame.GIS_ControlScale1.InterColor2;
  end;

  // 定制选项

  // 状态
  ckbIsShowDebugLog.Checked           := gShowDebugInfo;
  ckbIsAutoCancelAlarm.Checked        := gSysAutoCancelAlert;

  displayGPSDescFilter;

  // 定位数据
  ckbIsTrackGenOper.Checked           := gTrackGenOper;
  ckbIsEnableTrackHijack.Enabled      := gTrackGenOper;
  ckbIsEnableTrackHijack.Checked      := gShowDacoity;

  ckbIsIgnoreAdditionalTrack.Checked  := gIgnorCompensate;

  ckbIsGenLowSpeedAlarm.Checked       := gLowSpeedAlert;
  edtLowSpeedAlarmValue.Enabled       := gLowSpeedAlert;
  edtLowSpeedAlarmValue.Text          := IntToStr(gEmSpeedSlow);

  displayGPSTrackConverter;

  // 业务
  ckbIsNormalizeSpeedAlarm.Checked    := gOverSpeedNormal;
  ckbIsGenDoorOpen.Checked            := gDoorAlert;
  ckbIsGenEFenAlarm.Checked           := gEmAreaEnable;
  ckbIsGenLateAlarm.Checked           := gEmLaterEnable;
  ckbIsShowMessage.Checked            := gShowMessages;
  ckbIsIgnoreAdditionalTrack.Checked  := frmMain.FIgnorOper;

  displayOperationFilter;

  // 轨迹回放
  cbxShowRoadName.Checked := gShowQryGetRoadName;
  cbxShowStopSect.Checked := gIsShowStopSect;
  cbxShowStirCan.Checked :=  gShowQryResultStirCan;
  cbxQryResult.Items.Items[1].Checked := gShowQryResultVehicleName;
  cbxQryResult.Items.Items[2].Checked := gShowQryResultTimeSect;
  cbxQryResult.Items.Items[3].Checked := gShowQryResultRecordCount;
  cbxQryResult.Items.Items[4].Checked := gShowQryResultMileage;
  cbxQryResult.Items.Items[5].Checked := gShowQryResultAverageSpeed;
  cbxQryResult.Items.Items[6].Checked := gShowQryResultOilCost;
  cbxQryResult.Items.Items[7].Checked := gShowQryResultOilFee;
  cbxQryResult.Items.Items[8].Checked := gShowQryResultInvalidRate;
  cbxQryResult.Items.Items[9].Checked := gShowQryResultValidRate;

end;

//------------------------------------------------------------------------------
//  控件事件
//------------------------------------------------------------------------------

procedure TfrmSysSett.OnObjEnter(Sender: TObject);
begin
  if (Sender is TControl) then
    StatusBar1.SimpleText := (Sender as TControl).Hint;
end;

procedure TfrmSysSett.OnObjExit(Sender: TObject);
begin
  if (Sender is TControl) then
    StatusBar1.SimpleText := '';
end;

procedure TfrmSysSett.actOkExecute(Sender: TObject);
begin
//
end;

procedure TfrmSysSett.clbCarInfoTypeSetDblClick(Sender: TObject);
var
  i             : Integer;
  p_column_info : PGPSClientVehicleInfoColumn;
  form_edit     : TfrmGPSClientVehicleInfoEdit;
begin
  for i := 0 to clbCarInfoTypeSet.Count - 1 do
  begin
    if clbCarInfoTypeSet.Selected[i] then
    begin
      p_column_info := PGPSClientVehicleInfoColumn(
        FVehicleInfoFieldList.Items[i]
        );

      form_edit := TfrmGPSClientVehicleInfoEdit.Create(nil);
      try
        form_edit.edtFieldCaption.Text := p_column_info^.FieldInfo^.FieldCaption;
        form_edit.spedtWidth.Value := p_column_info^.FieldInfo^.ColumnWidth;

        if not p_column_info^.FieldInfo^.IsInput then
        begin
          form_edit.lblShowInActive.Visible := True;
          form_edit.ckbShowInActive.Visible := True;

          form_edit.ckbShowInActive.Checked := p_column_info^.IsShowInActive;
        end
        else begin
          form_edit.lblShowInActive.Visible := False;
          form_edit.ckbShowInActive.Visible := False;
        end;

        if form_edit.ShowModal = mrOk then
        begin
          p_column_info^.FieldInfo^.ColumnWidth := form_edit.spedtWidth.Value;

          if form_edit.ckbShowInActive.Visible then
            p_column_info^.IsShowInActive := form_edit.ckbShowInActive.Checked;
        end;
      finally
        form_edit.Free;
      end;

      Break;
    end;
  end;

end;

procedure TfrmSysSett.FormCreate(Sender: TObject);
begin
  FVehicleInfoFieldList := TList.Create;

  tsFilterDescription.TabVisible  := False;
  tsFilterTrack.TabVisible        := False;
  tsFilterOperation.TabVisible    := False;
  tsTrackReplay.TabVisible        := False;
end;

procedure TfrmSysSett.FormDestroy(Sender: TObject);
begin
  clearVehicleInfoFieldList;

  FreeAndNil(FVehicleInfoFieldList);
end;

procedure TfrmSysSett.clearVehicleInfoFieldList;
begin
  FVehicleInfoFieldList.Clear;
end;

procedure TfrmSysSett.StatusBar1MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
    if (ssCtrl in Shift) and
       (ssAlt in Shift) then
    begin
      tsFilterDescription.TabVisible  := not tsFilterDescription.TabVisible;
      tsFilterTrack.TabVisible        := not tsFilterTrack.TabVisible;
      tsFilterOperation.TabVisible    := not tsFilterOperation.TabVisible;
      tsTrackReplay.TabVisible        := not tsTrackReplay.TabVisible;
    end;
end;

procedure TfrmSysSett.ckbIsTrackGenOperPropertiesChange(Sender: TObject);
begin
  ckbIsEnableTrackHijack.Enabled := ckbIsTrackGenOper.Checked;
end;

procedure TfrmSysSett.ckbIsGenLowSpeedAlarmPropertiesChange(
  Sender: TObject);
begin
  edtLowSpeedAlarmValue.Enabled := ckbIsGenLowSpeedAlarm.Checked;
end;

{: 显示轨迹数据转换器设置。
}
procedure TfrmSysSett.displayGPSTrackConverter;
var
  i           : Integer;
  p_converter : PGPSClientProcessTrackConverter;
  list_item   : TcxCheckListBoxItem;
begin
  clbConverter.Items.BeginUpdate;
  try
    clbConverter.Clear;

    for i := 0 to GPSClientProcessTrackConverter.Count - 1 do
    begin
      p_converter :=
        PGPSClientProcessTrackConverter(GPSClientProcessTrackConverter.Objects[i]);

      list_item := clbConverter.Items.Add;
      list_item.Text := Format(
        '%s - %s: (%s) 替换为 (%s)', [
        p_converter^.ConfigName,
        p_converter^.Description,
        p_converter^.StringForm,
        p_converter^.StringTo
        ]);

      if not p_converter^.IsConfig then
      begin
        list_item.Checked := True;
        list_item.State   := cbsGrayed;
        list_item.Enabled := False;
      end
      else begin
        if p_converter^.Active then
          list_item.State := cbsChecked
        else
          list_item.State := cbsUnchecked;
      end;
    end;

  finally
    clbConverter.Items.EndUpdate;
  end;
end;

{: 保存轨迹数据转换器设置。
}
procedure TfrmSysSett.storeGPSTrackConverter;
var
  i           : Integer;
  p_converter : PGPSClientProcessTrackConverter;
  list_item   : TcxCheckListBoxItem;
begin
  for i := 0 to GPSClientProcessTrackConverter.Count - 1 do
  begin
    p_converter :=
      PGPSClientProcessTrackConverter(GPSClientProcessTrackConverter.Objects[i]);

    list_item := clbConverter.Items[i];

    p_converter^.Active := list_item.State <> cbsUnchecked;
  end;
end;

{: 显示轨迹数据过滤器设置。
}
procedure TfrmSysSett.displayGPSDescFilter;
var
  i             : Integer;
  p_desc_filter : PGPSClientProcessGPSDescFilter;
  list_item     : TcxCheckListBoxItem;
begin
  clbGPSDescFilter.Items.BeginUpdate;
  try
    clbGPSDescFilter.Clear;

    for i := 0 to GPSClientProcessGPSDescFilter.Count - 1 do
    begin
      p_desc_filter :=
        PGPSClientProcessGPSDescFilter(GPSClientProcessGPSDescFilter.Objects[i]);

      list_item := clbGPSDescFilter.Items.Add;
      list_item.Text := Format(
        '%s - %s: 替换(%s)', [
        p_desc_filter^.ConfigName,
        p_desc_filter^.Description,
        p_desc_filter^.FilterString
        ]);

      if p_desc_filter^.ShowItem then
        list_item.State := cbsChecked
      else
        list_item.State := cbsUnchecked;
    end;

  finally
    clbGPSDescFilter.Items.EndUpdate;
  end;
end;

{: 保存轨迹数据过滤器设置。
}
procedure TfrmSysSett.storeGPSDescFilter;
var
  i             : Integer;
  p_desc_filter : PGPSClientProcessGPSDescFilter;
  list_item     : TcxCheckListBoxItem;
begin
  for i := 0 to GPSClientProcessGPSDescFilter.Count - 1 do
  begin
    p_desc_filter :=
      PGPSClientProcessGPSDescFilter(GPSClientProcessGPSDescFilter.Objects[i]);

    list_item := clbGPSDescFilter.Items[i];

    p_desc_filter^.ShowItem := list_item.State <> cbsUnchecked;
  end;
end;

{: 显示业务数据过滤器设置。
}
procedure TfrmSysSett.displayOperationFilter;
var
  i             : Integer;
  p_desc_filter : PGPSClientProcessOperationFilter;
  list_item     : TcxCheckListBoxItem;
begin
  clbOperationFilter.Items.BeginUpdate;
  try
    clbOperationFilter.Clear;

    for i := 0 to GPSClientProcessOperationFilter.Count - 1 do
    begin
      p_desc_filter :=
        PGPSClientProcessOperationFilter(GPSClientProcessOperationFilter.Objects[i]);

      list_item := clbOperationFilter.Items.Add;
      list_item.Text := Format(
        '%s - %s: 关键字(%s)', [
        p_desc_filter^.ConfigName,
        p_desc_filter^.Description,
        p_desc_filter^.FilterString
        ]);

      if not p_desc_filter^.IsConfig then
      begin
        list_item.Enabled := False;
        list_item.Checked := False;
      end
      else begin
        if p_desc_filter^.GenOperation then
          list_item.State := cbsChecked
        else
          list_item.State := cbsUnchecked;
      end;
    end;

  finally
    clbOperationFilter.Items.EndUpdate;
  end;
end;

{: 保存业务数据过滤器设置。
}
procedure TfrmSysSett.storeOperationFilter;
var
  i             : Integer;
  p_desc_filter : PGPSClientProcessOperationFilter;
  list_item     : TcxCheckListBoxItem;
begin
  for i := 0 to GPSClientProcessOperationFilter.Count - 1 do
  begin
    p_desc_filter :=
      PGPSClientProcessOperationFilter(GPSClientProcessOperationFilter.Objects[i]);

    list_item := clbOperationFilter.Items[i];

    p_desc_filter^.GenOperation := list_item.State <> cbsUnchecked;
  end;
end;

//------------------------------------------------------------------------------
// 控件事件
//------------------------------------------------------------------------------

procedure TfrmSysSett.clbGPSDescFilterClickCheck(Sender: TObject;
  AIndex: Integer; APrevState, ANewState: TcxCheckBoxState);
var
  i               : Integer;
  p_check_filter  : PGPSClientProcessGPSDescFilter;
  p_desc_filter   : PGPSClientProcessGPSDescFilter;
  config_name     : string;
  check_event     : TcxClickCheckEvent;
begin
  if AIndex < 0 then
    Exit;

  p_check_filter :=
    PGPSClientProcessGPSDescFilter(GPSClientProcessGPSDescFilter.Objects[AIndex]);
  config_name := p_check_filter^.ConfigName;

  for i := 0 to GPSClientProcessGPSDescFilter.Count - 1 do
  begin
    p_desc_filter :=
      PGPSClientProcessGPSDescFilter(GPSClientProcessGPSDescFilter.Objects[i]);

    if p_desc_filter^.ConfigName = config_name then
      p_desc_filter^.ShowItem := ANewState = cbsChecked;
  end;

  check_event := clbGPSDescFilter.OnClickCheck;
  clbGPSDescFilter.OnClickCheck := nil;
  try
    displayGPSDescFilter;
  finally
    clbGPSDescFilter.OnClickCheck := check_event;
  end;
end;

procedure TfrmSysSett.clbConverterClickCheck(Sender: TObject;
  AIndex: Integer; APrevState, ANewState: TcxCheckBoxState);
var
  i                 : Integer;
  p_check_converter : PGPSClientProcessTrackConverter;
  p_converter       : PGPSClientProcessTrackConverter;
  config_name       : string;
  check_event       : TcxClickCheckEvent;
begin
  if AIndex < 0 then
    Exit;

  p_check_converter :=
    PGPSClientProcessTrackConverter(GPSClientProcessTrackConverter.Objects[AIndex]);
  config_name := p_check_converter^.ConfigName;

  for i := 0 to GPSClientProcessTrackConverter.Count - 1 do
  begin
    p_converter :=
      PGPSClientProcessTrackConverter(GPSClientProcessTrackConverter.Objects[i]);

    if p_converter^.ConfigName = config_name then
      p_converter^.Active := ANewState = cbsChecked;
  end;

  check_event := clbConverter.OnClickCheck;
  clbConverter.OnClickCheck := nil;
  try
    displayGPSTrackConverter;
  finally
    clbConverter.OnClickCheck := check_event;
  end;
end;

procedure TfrmSysSett.clbOperationFilterClickCheck(Sender: TObject;
  AIndex: Integer; APrevState, ANewState: TcxCheckBoxState);
var
  i               : Integer;
  p_check_filter  : PGPSClientProcessOperationFilter;
  p_desc_filter   : PGPSClientProcessOperationFilter;
  config_name     : string;
  check_event     : TcxClickCheckEvent;
begin
  if AIndex < 0 then
    Exit;

  p_check_filter :=
    PGPSClientProcessOperationFilter(GPSClientProcessOperationFilter.Objects[AIndex]);
  config_name := p_check_filter^.ConfigName;

  for i := 0 to GPSClientProcessOperationFilter.Count - 1 do
  begin
    p_desc_filter :=
      PGPSClientProcessOperationFilter(GPSClientProcessOperationFilter.Objects[i]);

    if p_desc_filter^.ConfigName = config_name then
      p_desc_filter^.GenOperation := ANewState = cbsChecked;
  end;

  check_event := clbOperationFilter.OnClickCheck;
  clbOperationFilter.OnClickCheck := nil;
  try
    displayOperationFilter;
  finally
    clbOperationFilter.OnClickCheck := check_event;
  end;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -