亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? unitqcgisproject.pas

?? 此代碼是關于mapgis的在
?? PAS
?? 第 1 頁 / 共 5 頁
字號:

procedure TqcGISProject.DoAfterUserConnect;
var
  AModuleRight:TModuleRight;
begin
  if Connected then
  begin
    //設置主窗口權限//
    CanEnterModule(Form_Main.ClassType, AModuleRight);
    if AModuleRight=nil then
    begin
      MyWarning('用戶權限遭到破壞,請系統管理員修復該用戶的權限配置!');
      Application.Terminate;
      Exit;
    end;
    Form_Main.ModuleRight:=AModuleRight;
    DebugLog.Add('DB500TS-C', ['允許用戶登陸系統主界面']);
    //加載變電所列表//
    ReInitServerPart;
    DebugLog.Add('DB500TS-C', ['系統加載變電所列表成功']);
    //如果該用戶是調度室人員,則可以查看所有變電所的地圖,因此,設置第一個
    //變電所為默認變電所;如果該用戶是變電所人員,則只能查看自己所在變電所
    //的地圖
    case UserUnitType of
      1:begin
        Form_Main.cb_Maps.Enabled:=True;
        Form_Main.cb_Maps.Color:=clWindow;
        if Form_Main.cb_Maps.Items.Count>0 then
        begin
          Form_Main.cb_Maps.ItemIndex:=0;
          Form_Main.cb_Maps.OnChange(Form_Main.cb_Maps);
        end;
      end;
      2:begin
        FCurUnitID:=TQCUserInfo(App_UserInfo).UnitID;
        Form_Main.cb_Maps.Enabled:=False;
        Form_Main.cb_Maps.Color:=clBtnFace;
        Form_Main.cb_Maps.ItemIndex:=Form_Main.cb_Maps.Items.IndexOf(TQCUserInfo(App_UserInfo).UnitName);
        Form_Main.cb_Maps.OnChange(Form_Main.cb_Maps);        
      end;
    end;
    DebugLog.Add('DB500TS-C', ['系統加載默認變電所地圖成功']);
    //設置用戶權限//
    DoApplayFunctions;
    DebugLog.Add('DB500TS-C', ['應用用戶權限成功']);
  end;
end;

procedure TqcGISProject.DoBeforeDelete(Ft:Feature; ActionId:Integer);
begin
  if Trim(Ft.KeyValue)='' then Exit;
  case GetLayerFeatureId(Ft.Layer) of
    LAYER_SYS_SUBSTATION:
      GDBPoster.DeleteRecord('t_SubStationLayer', 'StationID='+Ft.KeyValue);
    LAYER_SYS_POWER:begin
      {如果是合并,為了盡量保留屬性數據,將合并前的第一個開關記錄作為合并后的開關
      記錄,合并前各個開關關聯的線路都將被保留下來,并關聯到合并后的開關上。
      下面代碼就是將合并前開關的保存起來的方法。}
      if ActionId=ID_ACTION_COMBINE then
      begin
        if FirstFeature and IsNumber(Ft.KeyValue) then
        begin
          FirstFeatureKeyValue:=Ft.KeyValue;
          FirstFeature:=False;
        end
        else if IsNumber(Ft.KeyValue) then
        begin
          GDBPoster.DeleteRecord('t_CtrlDotsLayer', 'DotId='+Ft.KeyValue);
          GDBPoster.TableName:='t_DotLines';
          GDBPoster.SetModifyFields('DotId');
          GDBPoster.WhereSQL.Text:='DotId=:DotId';
          GDBPoster.SetCustomValue('DotId', StrToInt(FirstFeatureKeyValue));
          GDBPoster.SetParamValue('DotId', StrToInt(Ft.KeyValue));
          GDBPoster.EditPost;
        end;
      end
      else
      begin
        GDBPoster.DeleteRecord('t_CtrlDotsLayer', 'DotId='+Ft.KeyValue);
        GDBPoster.DeleteRecord('t_DotLines', 'DotId='+Ft.KeyValue);
      end;
    end;
    LAYER_SYS_LINE:begin
      if ActionId=ID_ACTION_COMBINE then
      begin
        if FirstFeature and IsNumber(Ft.KeyValue) then
        begin
          FirstFeatureKeyValue:=Ft.KeyValue;
          FirstFeature:=False;
        end
        else if IsNumber(Ft.KeyValue) then
        begin
          //不是第一個,則刪除線路記錄//
          GDBPoster.DeleteRecord('t_LinesLayer', 'LineId='+Ft.KeyValue);
          //修改線路-開關表中相應記錄的線路號為FirstFeatureKeyValue//
          GDBPoster.TableName:='t_DotLines';
          GDBPoster.SetModifyFields('LineId');
          GDBPoster.WhereSQL.Text:='LineId=:LineId';
          GDBPoster.SetCustomValue('LineId', StrToInt(FirstFeatureKeyValue));
          GDBPoster.SetParamValue('LineId', StrToInt(Ft.KeyValue));
          GDBPoster.EditPost;
        end;
      end
      else
      begin
        GDBPoster.DeleteRecord('t_LinesLayer', 'LineId='+Ft.KeyValue);
        GDBPoster.DeleteRecord('t_DotLines', 'LineId='+Ft.KeyValue);
      end;
    end;
  end;
end;

function TqcGISProject.GetLayerFeatureId(ALyr: Layer): Integer;
begin
  if ALyr=FSubStationLayer then
    Result:=LAYER_SYS_SUBSTATION
  else if ALyr=FDotLayer then
    Result:=LAYER_SYS_POWER
  else if ALyr=FLineLayer then
    Result:=LAYER_SYS_LINE
  else if ALyr=FUserLayer then
    Result:=LAYER_SYS_USER
  else if ALyr=FRoadLayer then
    Result:=LAYER_SYS_ROAD
  else if ALyr=FBTLayer then
    Result:=LAYER_SYS_BT
  else
    Result:=0;
end;

function TqcGISProject.GetConnected: Boolean;
begin
  Result:=App_UserInfo.UserExists;
end;

procedure TqcGISProject.GetUnits(List: TStrings);
begin
  List.Clear;
  with dm_MainLinkObjects.PublicQuery do
  begin
    Close;
    SQL.Text:='select UnitID, UnitName from t_Units order by UnitID';
    Open;
    while not Eof do
    begin
      List.Add(Fields[0].AsString+'='+Fields[1].AsString);
      Next;
    end;
    Close;
  end;
end;

function TqcGISProject.GetUserUnitType: Integer;
begin
  Result:=TQCUserInfo(App_UserInfo).UnitType;
end;

procedure TqcGISProject.InitLineLayerRecords;
var
  i,j:Integer;
  Fts:Features;
  newrvs:RowValues;
begin
  GDBPoster.DeleteRecord('t_LinesLayer', 'UnitID='+IntToStr(CurUnitID));
  GDBPoster.TableName:='t_LinesLayer';
  GDBPoster.SetInsertFields('UnitID,LineID,LineName,Length,Script');
  newrvs:=CreateRowValuesFromStruct(FLineLayer.DataSets.Item[1].Fields, FLineLayer.DataSets.Item[1]);
  Fts:=FLineLayer.AllFeatures;
  j:=1;
  for i:=1 to Fts.Count do
  begin
    try
      if Fts.Item[i].type_=miFeatureTypeLine then
      begin
        newrvs.Item['LineID'].Value:=j;
        newrvs.Item['LineName'].Value:=IntToStr(j)+'號線';
        newrvs.Item['Length'].Value:=0;
        newrvs.Item['Script'].Value:='';
        Fts.Item[i].Update(EmptyParam, newrvs);

        GDBPoster.SetCustomValue('UnitID',CurUnitID);
        GDBPoster.SetCustomValue('LineID', j);
        GDBPoster.SetCustomValue('LineName',IntToStr(j)+'號線');
        GDBPoster.SetCustomValue('Length','0');
        GDBPoster.SetCustomValue('Script','');
        GDBPoster.InsertPost;
      end;
      Inc(j);
    except
    end;
  end;
end;

procedure TqcGISProject.InitDotLayerRecords;
var
  i,j:Integer;
  Fts:Features;
  newrvs:RowValues;
begin
  GDBPoster.DeleteRecord('t_CtrlDotsLayer', 'UnitID='+IntToStr(CurUnitID));
  GDBPoster.TableName:='t_CtrlDotsLayer';
  GDBPoster.SetInsertFields('UnitID,DotID,DotName,Type,KgState,Script');
  newrvs:=CreateRowValuesFromStruct(FDotLayer.DataSets.Item[1].Fields, FDotLayer.DataSets.Item[1]);
  Fts:=FDotLayer.AllFeatures;
  j:=1;
  for i:=1 to Fts.Count do
  begin
    try
      if Fts.Item[i].type_=miFeatureTypeLine then
      begin
        newrvs.Item['DotID'].Value:=j;
        newrvs.Item['DotName'].Value:=IntToStr(j)+'號開關';
        newrvs.Item['Type'].Value:=1;
        newrvs.Item['KgState'].Value:=True;
        newrvs.Item['Script'].Value:='';
        Fts.Item[i].Update(EmptyParam, newrvs);

        GDBPoster.SetCustomValue('UnitID',CurUnitID);
        GDBPoster.SetCustomValue('DotID', j);
        GDBPoster.SetCustomValue('DotName',IntToStr(j)+'號開關');
        GDBPoster.SetCustomValue('Type',1);
        GDBPoster.SetCustomValue('KgState',1);
        GDBPoster.SetCustomValue('Script','');
        GDBPoster.InsertPost;
      end;
      Inc(j);
    except
    end;
  end;
end;

procedure TqcGISProject.LinkToPowerClick(Sender: TObject);
var
  AToolObj:TLinkToPowerMapTool;
begin
  EditSystemLayer(LAYER_SYS_LINE);
  AToolObj:=SetCurrentMapTool('TLinkToPowerMapTool', OnTurnTool) as TLinkToPowerMapTool;
  AToolObj.Project:=Self;
end;

procedure TqcGISProject.AnalyzeSubStationClick(Sender: TObject);
var
  Fts:Features;
begin
  if FSubStationLayer=nil then Exit;
  Fts:=FSubStationLayer.AllFeatures;
  AnalyzeFeatures(FSubStationLayer, Fts, miFeatureTypeSymbol, clBlue);
  if FSubStationLayer.Selection.Count=0 then
    MyDefInformation('所有子站都已有記錄!');
end;

procedure TqcGISProject.AnalyzePowerClick(Sender: TObject);
var
  Fts:Features;
begin
  if FDotLayer=nil then Exit;
  Fts:=FDotLayer.AllFeatures;
  AnalyzeFeatures(FDotLayer, Fts, miFeatureTypeLine, clGreen);
  if FDotLayer.Selection.Count=0 then
    MyDefInformation('所有開關都已有記錄!');
end;

procedure TqcGISProject.AnalyzeLinkPowerClick(Sender: TObject);
var
  Fts:Features;
begin
  if FLineLayer=nil then Exit;
  FLineLayer.Selection.ClearSelection;
  with dm_MainLinkObjects.PublicQuery do
  begin
    Close;
    SQL.Clear;
    SQL.Add('SELECT LineID FROM t_LinesLayer');
    SQL.Add('WHERE UnitID=1 and NOT (LineID IN');
    SQL.Add('(SELECT a.LineID FROM t_LinesLayer a');
    SQL.Add('INNER JOIN t_DotLines b ON a.LineID = b.LineID))');
    Open;
    while not Eof do
    begin
      Fts:=FLineLayer.Search('LineID='+Fields[0].AsString, EmptyParam);
      if Fts.Count=1 then
      begin
        Fts.Item[1].Style.LineColor:=clRed;
        Fts.Item[1].Update(EmptyParam, EmptyParam);
        FLineLayer.Selection.Add(Fts.Item[1]);
      end;
      Next;
    end;
    Close;
  end;
  if FLineLayer.Selection.Count=0 then
    MyDefInformation('所有線路都有開關!');
end;

procedure TqcGISProject.AnalyzeSDLineClick(Sender: TObject);
var
  Fts:Features;
begin
  if FLineLayer=nil then Exit;
  Fts:=FLineLayer.AllFeatures;
  AnalyzeFeatures(FLineLayer, Fts, miFeatureTypeLine, clRed);
  if FLineLayer.Selection.Count=0 then
    MyDefInformation('所有線路都已有記錄!');
end;

procedure TqcGISProject.AnalyzeFeatures(ALyr:Layer; Fts: Features;
  FtType:TOLEEnum; WarningColor:TColor);
var
  i:Integer;
  str:string;
begin
  ALyr.Selection.ClearSelection;
  for i:=1 to Fts.Count do
  begin
    try
      if Fts.Item[i].type_=FtType then
      begin
        str:=Trim(Fts.Item[i].KeyValue);
        if (str='')or(not IsNumber(str))or(StrToInt(str)<=0) then
        begin
          Fts.Item[i].Style.LineColor:=WarningColor;
          Fts.Item[i].Update(EmptyParam, EmptyParam);
          ALyr.Selection.Add(Fts.Item[i]);
        end;
      end;
    except
    end;
  end;
end;

procedure TqcGISProject.LoadDLControlDataClick(Sender: TObject);
var
  OldEnabled:Boolean;
begin
  OldEnabled:=FPowerTimer.Enabled;
  try
    FPowerTimer.Enabled:=False;
    DLCtrl.LoadFromDataBase(dm_MainLinkObjects.PublicQuery);
    DLCtrl.AnalyzeState;
    RefreshAllDotState;
    RefreshLineLayerState(True);
  finally
    FPowerTimer.Enabled:=OldEnabled;
  end;
end;

procedure TqcGISProject.RandomPowerStateClick(Sender: TObject);
begin
  FPowerTimer.Enabled:=not FPowerTimer.Enabled;
  if FPowerTimer.Enabled then
    TMenuItem(Sender).Caption:='停止開關狀態隨機模擬'
  else
    TMenuItem(Sender).Caption:='啟動開關狀態隨機模擬';
end;

procedure TqcGISProject.PowerTimerOnTimer(Sender: TObject);
var
  aDot:TDot;
  Index:Integer;
begin
  FPowerTimer.Enabled:=False;
  try
    with TqcGISProject(MyGIS) do
    begin
      Index:=Random(DLCtrl.Dots.ItemCount-1);
      if (Index>-1)and(Index<DLCtrl.Dots.ItemCount) then
      begin
        aDot:=DLCtrl.Dots.Items[Index];
        if aDot.BDSDot then Exit;
        if (Random(100) mod 2)=1 then
          DLCtrl.SetDotState(aDot, dsBreak, False)
        else
          DLCtrl.SetDotState(aDot, dsLink, False);
        DLCtrl.AnalyzeState;
        RefreshDotState(aDot);
        RefreshLineLayerState(True);
      end;
    end;
  finally
    FPowerTimer.Enabled:=True;
  end;
end;

function TqcGISProject.IsOldLayer(aUnitID: Integer; aTableName: string): Boolean;
var
  INIF:TIniFile;
  LocalDate:TDateTime;
  UpLoadDate: TDateTime;
begin
  with dm_MainLinkObjects.PublicQuery do
  begin
    Close;
    SQL.Clear;
    SQL.Add('select ModifyTime f

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人午夜免费电影| 亚洲欧洲成人精品av97| 成人激情免费网站| 午夜精品一区二区三区免费视频 | 精品国产乱码久久久久久图片| 成人成人成人在线视频| 奇米色一区二区| 亚洲夂夂婷婷色拍ww47| 国产女同互慰高潮91漫画| 欧美一区二区视频免费观看| 91玉足脚交白嫩脚丫在线播放| 麻豆专区一区二区三区四区五区| 夜夜亚洲天天久久| 国产女人aaa级久久久级| 欧美一区二区福利在线| 欧美系列日韩一区| 在线欧美日韩精品| www.欧美色图| 成人爽a毛片一区二区免费| 蜜臀精品一区二区三区在线观看| 亚洲午夜激情网页| 亚洲欧美国产高清| 综合av第一页| 国产精品国产三级国产普通话99| 2019国产精品| 欧美三级乱人伦电影| a亚洲天堂av| 成人伦理片在线| 91久久精品网| 综合久久久久久久| 欧美男生操女生| 国产成人自拍网| 免费观看在线色综合| 日韩伦理电影网| 久久久91精品国产一区二区三区| 国产电影一区二区三区| 欧美另类videos死尸| 中文字幕第一页久久| 欧美三级视频在线播放| 99久久99久久久精品齐齐| 国产一区二区三区在线观看免费视频| 久久se这里有精品| 成人精品国产一区二区4080| 欧美日韩在线精品一区二区三区激情| www国产成人| 天天色 色综合| av成人老司机| 久久久久久久久久电影| 韩国精品在线观看| 欧美一区二区美女| 五月开心婷婷久久| 国产99久久久国产精品| 日本亚洲视频在线| 国模大尺度一区二区三区| a美女胸又www黄视频久久| 成人免费看黄yyy456| av一区二区三区| 色综合久久88色综合天天6 | 91浏览器在线视频| 91免费观看国产| 91久久精品日日躁夜夜躁欧美| 精品不卡在线视频| 99久久婷婷国产| 日本精品视频一区二区三区| 欧美视频自拍偷拍| 日韩欧美一区二区免费| 久久综合成人精品亚洲另类欧美| 国产无人区一区二区三区| 中文字幕一区二区三区不卡| 一卡二卡三卡日韩欧美| 日本中文一区二区三区| 国产一区二区久久| 色悠悠久久综合| 91精品国产综合久久久久久漫画| 精品国产一区二区三区四区四| 国产精品久久一卡二卡| 亚洲国产一区二区a毛片| 老鸭窝一区二区久久精品| 粉嫩久久99精品久久久久久夜| 99久久精品情趣| 777亚洲妇女| 中文在线资源观看网站视频免费不卡| 亚洲精品国产精品乱码不99| 男人的j进女人的j一区| 成人看片黄a免费看在线| 精品视频一区二区三区免费| 精品国产91久久久久久久妲己| ㊣最新国产の精品bt伙计久久| 天天射综合影视| 成人免费视频网站在线观看| 欧美日本免费一区二区三区| 国产日韩欧美综合在线| 亚洲成人免费视频| 成人免费视频一区| 日韩视频免费观看高清完整版在线观看| 中文字幕精品一区二区精品绿巨人 | www欧美成人18+| 亚洲免费在线看| 狠狠色狠狠色合久久伊人| 色呦呦日韩精品| 久久久精品欧美丰满| 婷婷久久综合九色综合绿巨人| 盗摄精品av一区二区三区| 在线不卡免费av| 亚洲婷婷综合久久一本伊一区| 久久精品国产一区二区三区免费看| 97久久精品人人做人人爽| 欧美mv和日韩mv国产网站| 亚洲一区在线看| 成人av在线影院| 精品免费视频一区二区| 亚洲一二三四久久| 成人av在线资源网| 久久久激情视频| 韩国精品一区二区| 正在播放亚洲一区| 一区二区三区精品| av亚洲精华国产精华精| 久久久精品国产免大香伊| 美国三级日本三级久久99| 欧美午夜一区二区三区免费大片| 综合激情网...| 成人免费观看视频| 国产亚洲成aⅴ人片在线观看| 麻豆91免费看| 日韩欧美一区在线观看| 日韩中文字幕不卡| 欧美日韩视频专区在线播放| 亚洲午夜免费电影| 91电影在线观看| 一区二区在线观看免费| 91视频免费播放| 亚洲黄一区二区三区| 色婷婷av一区二区三区软件| 亚洲欧美电影一区二区| 色伊人久久综合中文字幕| 亚洲免费在线视频| 欧美亚洲丝袜传媒另类| 亚洲高清视频的网址| 欧美日韩国产美| 婷婷中文字幕综合| 欧美一区在线视频| 久久国产三级精品| 国产午夜久久久久| 99精品视频在线免费观看| 亚洲精品午夜久久久| 欧美偷拍一区二区| 日本亚洲一区二区| 久久亚洲欧美国产精品乐播 | 中文字幕欧美日韩一区| av激情亚洲男人天堂| 怡红院av一区二区三区| 欧美日韩国产高清一区二区三区| 日韩影院精彩在线| 精品国产乱码久久久久久免费 | 日韩精品一区二区三区视频 | 一区二区三区四区亚洲| 欧美亚洲禁片免费| 视频在线观看一区| 26uuu亚洲综合色欧美| 成人亚洲精品久久久久软件| 亚洲欧美日韩人成在线播放| 在线观看日韩毛片| 蜜臀精品一区二区三区在线观看 | 日韩不卡免费视频| www国产亚洲精品久久麻豆| 成人福利电影精品一区二区在线观看| **性色生活片久久毛片| 欧美福利一区二区| 国产成人午夜片在线观看高清观看| 亚洲欧洲美洲综合色网| 欧美日韩你懂的| 国产在线精品一区二区不卡了| 国产精品进线69影院| 欧美日韩精品欧美日韩精品一综合| 麻豆91精品视频| 中文字幕视频一区二区三区久| 欧美视频自拍偷拍| 国产成人免费在线观看| 亚洲国产精品自拍| 国产欧美精品一区二区三区四区| 色综合久久66| 国模套图日韩精品一区二区| 亚洲精品伦理在线| 精品第一国产综合精品aⅴ| 99久久亚洲一区二区三区青草 | 久久精品国产秦先生| 中文字幕不卡在线播放| 宅男噜噜噜66一区二区66| 亚洲美腿欧美偷拍| 在线精品国精品国产尤物884a| 国产无遮挡一区二区三区毛片日本| 国产精品资源网| 国产精品天干天干在观线| 久久婷婷国产综合国色天香| 亚洲人成精品久久久久| 国内一区二区视频| 国产日韩精品一区二区三区| 国产91综合一区在线观看| 国产三级精品在线|