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

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

?? unitqcgisproject.~pas

?? 此代碼是關于mapgis的在
?? ~PAS
?? 第 1 頁 / 共 5 頁
字號:
   
  App_UserInfo:=TQCUserInfo.Create;
  TQCUserInfo(App_UserInfo).DBFactory:=FDBFactory;

  FDLCtrl:=TDLControl.Create;
  FPowerTimer:=TTimer.Create(nil);
  FPowerTimer.Enabled:=False;
  FPowerTimer.OnTimer:=PowerTimerOnTimer;  

  FDataFrom:=2;

  FirstFeature:=True;

  FSubStationFrame:=nil;
end;

destructor TqcGISProject.Destroy;
begin
  FPowerTimer.Free;
  FDBManager.Free;
  GDBPoster.Free;
  FDBFactory.Free;
  FDLCtrl.Free;
  inherited Destroy;
end;

procedure TqcGISProject.DoOnCtrlPropDialog(Sender: TObject;
  ActionId:Integer; Ft: Feature);
var
  ALyr:Layer;
  LayerIndex:Integer;
  ANode:TTreeNode;
begin
  //如果為系統圖層,則使用自定義屬性對話框,否則使用系統屬性對話框//
  ALyr:=TLayerManager(Sender).Layer;
  LayerIndex:=GMapTools.m_Layers.IndexByLayer(ALyr);
  ANode:=FindLayerNode(LayerIndex);
  case TLayerTreeNodeRecord(ANode.Data).FtClassType of
    LAYER_SYS_SUBSTATION:begin
      if Ft.type_<>miFeatureTypeSymbol then Exit;
      if (Ft.KeyValue<>'')and(StrToInt(Ft.KeyValue)>0) then
        ConfigSubStationInfo(GMapTools.MapX, FDBFactory, CurUnitID, Ft)
      else
        NewSubStationInfo(GMapTools.MapX, FDBFactory, CurUnitID, Ft);
    end;
    LAYER_SYS_POWER:begin
      if (Ft.type_<>miFeatureTypeLine)and(Ft.type_<>miFeatureTypeRegion) then
        Exit;
      if (Ft.KeyValue<>'')and(StrToInt(Ft.KeyValue)>0) then
        ConfigPowerInfo(GMapTools.MapX, CurUnitID, Ft)
      else
        NewPowerInfo(GMapTools.MapX, CurUnitID, Ft);
    end;
    LAYER_SYS_LINE:begin
      if (Ft.type_<>miFeatureTypeLine)and(Ft.type_<>miFeatureTypeRegion) then
        Exit;
      if (Ft.KeyValue<>'')and(StrToInt(Ft.KeyValue)>0) then
        ConfigSDLineInfo(GMapTools.MapX, CurUnitID, Ft)
      else 
        NewSDLineInfo(GMapTools.MapX, CurUnitID, Ft);
    end;
    LAYER_SYS_USER:begin
    end;
    LAYER_SYS_ROAD:begin
    end;    
  end;      
end;

procedure TqcGISProject.DownLoadClick(Sender: TObject);
begin
  if YHB_Confirmation('是否從服務器上下載圖層?', False) then
  begin
    DownLoadSystemLayers;
    if Form_Main.cb_Maps.ItemIndex<>-1 then
      Form_Main.cb_Maps.OnChange(Form_Main.cb_Maps);
  end;
end;

procedure TqcGISProject.DownloadProjectLayer(ALyr: CMapXLayer;
  aLayerInfo:TLayerTreeNodeRecord; const LayerName, Path:string);
var
  MapFields:TMapFieldList;
  FileName:string;
begin
  MapFields:=TMapFieldList.Create;
  try
    if aLayerInfo.DataFrom=1 then
    begin
      LoadMapFields(aLyr.DataSets.Item[1].Fields, MapFields);
      aLyr:=GMapTools.m_Layers.CreateCustomTableLayer(
                   LayerName, Path, MapFields, 1, True);
      AddLayerNode(SysTree, SysTreeRoot, naAddChildFirst,
                   -1, aLyr.Name, Path+'\'+LayerName+'.TAB', False, 2, -1, 3);
      GMapTools.m_Layer.Layer:=aLyr;
      GMapTools.m_Layer.LoadFeaturesFromTable(
                   dm_MainLinkObjects.PublicQuery,
                   aLayerInfo.FileName, MapFields);
    end
    else
    begin
      FileName:=CheckPath(Path)+LayerName+'.TAB';
      DownloadBinaryLayer(CurUnitID, aLayerInfo.FileName, Path, LayerName);
      if not FileExists(FileName) then
        WarningAbort('錯誤', '下載失敗,可能服務器圖層被刪除!');
      aLyr:=GMapTools.m_Layers.CreateLayerFromFile(
                   LayerName, FileName, 1, True);
      AddLayerNode(SysTree, SysTreeRoot, naAddChildFirst,
                   -1, aLyr.Name, FileName, False, 2, -1, 3);
    end;
  finally
    MapFields.Free;
  end;   
end;

procedure TqcGISProject.LoadAndInitMap;
var
  i:Integer;
  Index:Integer;
  pLayerInfo:TLayerTreeNodeRecord;
  MapFields:TMapFieldList;
begin
  AppPath:=CheckPath(AppPath);
  MapFields:=TMapFieldList.Create;
  try
    Index:=0;
    for i:=0 to SysTree.Items.Count-1 do
    begin
      pLayerInfo:=TLayerTreeNodeRecord(SysTree.Items[i].Data);
      if (pLayerInfo<>nil)and(pLayerInfo.NodeType=LTN_LAYER) then
      begin
        Inc(Index);
        if pLayerInfo.IsSystem then  //如果系統圖層,并且從服務器加載//
          CreateLayerFromTable(pLayerInfo, Index)
        else     //如果是本地圖層,則從文件加載//
          with GMapTools.m_Layers do
          begin
            if FileExists(pLayerInfo.FileName) then
              CreateLayerFromFile(pLayerInfo.Name, pLayerInfo.FileName, -1, True)
            else begin
              MapFields.Clear;
              MapFields.AddAndInit('ID', mftInteger, 0, 0, 0);
              MapFields.AddAndInit('Caption', mftString, 50, 0, 0);
              CreateCustomTableLayer(pLayerInfo.Name, AppPath+'Maps'+CurUnitName, MapFields, -1, True);
            end;
          end;
      end;
    end;
  finally
    MapFields.Free;
  end;
  {編輯圖層初始化為nil}
  EditLayer:=nil;
end;

procedure TqcGISProject.LoadBusinessMenuItems(AMenuItem: TMenuItem);
var
  aSubItem:TMenuItem;
begin
  if AMenuItem=nil then Exit;
  FRootMenuItem:=AMenuItem;
  FRootMenuItem.Clear;

  aSubItem:=LoadMenuItem(FRootMenuItem,  '系統管理', -1, nil);
  NReDirectServer:=aSubItem;
  LoadMenuItem(aSubItem, '客戶端配置...', MENU_ID_CONNECT, ConnectClick);

  LoadMenuItem(FRootMenuItem, '-', -1, nil);

  aSubItem:=LoadMenuItem(FRootMenuItem,  '業務操作', -1, nil);
  
  NConfigBDS:=LoadMenuItem(aSubItem, '變電所管理', -1, nil);
  LoadMenuItem(aSubItem, '-', -1, nil);
  NAddStation:=LoadMenuItem(aSubItem, '增加子站', MENU_ID_ADDSUBSTATION, AddStationClick);
  NAddLine:=LoadMenuItem(aSubItem, '增加線路', MENU_ID_ADDLINE, AddLineClick);
  NAddKG:=LoadMenuItem(aSubItem, '增加開關', MENU_ID_ADDKG, AddKGClick);
  NAddBT:=LoadMenuItem(aSubItem, '增加變臺', MENU_ID_ADDBT, AddBTClick);

  LoadMenuItem(aSubItem, '-', -1, nil);
  LoadMenuItem(aSubItem, '分析無記錄子站', -1, AnalyzeSubStationClick);
  LoadMenuItem(aSubItem, '分析無記錄開關', -1, AnalyzePowerClick);
  LoadMenuItem(aSubItem, '分析無記錄線路', -1, AnalyzeSDLineClick);
  LoadMenuItem(aSubItem, '分析無開關線路', -1, AnalyzeLinkPowerClick);

  LoadMenuItem(aSubItem, '-', -1, nil);
  NLinkToPower:=LoadMenuItem(aSubItem, '關聯開關', MENU_ID_LINKTOPOWER, LinkToPowerClick);

  LoadMenuItem(aSubItem, '-', -1, nil);
  LoadMenuItem(aSubItem, '從新裝載模擬數據', -1, LoadDLControlDataClick);
  LoadMenuItem(aSubItem, '啟動開關狀態隨機模擬', -1, RandomPowerStateClick);
  
  LoadMenuItem(aSubItem, '-', -1, nil);

  NUpLoad:=LoadMenuItem(aSubItem, '上載圖層', -1, UpLoadClick);
  NDownLoad:=LoadMenuItem(aSubItem, '下載圖層', -1, DownLoadClick);

  LoadMenuItem(aSubItem, '-', -1, nil);

  NShapeProperties:=LoadMenuItem(aSubItem, '圖形屬性', MENU_ID_PROPERTIES, ShapePropertiesClick);

  LoadMenuItem(FRootMenuItem, '-', -1, nil);

  aSubItem:=LoadMenuItem(FRootMenuItem,  '權限管理', -1, nil);
  NUserRight:=aSubItem;
  LoadMenuItem(aSubItem, '重新登陸', -1, ReConnectClick);
  LoadMenuItem(aSubItem, '密碼修改', -1, CheckPasswordClick);
  
  LoadMenuItem(aSubItem, '-', -1, nil);
  NConfigPopedom:=LoadMenuItem(aSubItem, '權限分配', -1, ConfigPopedomClick);
end;

procedure TqcGISProject.CreateFeatureClassNode(const FCId: Integer;
  ATreeView: TTreeView; ATreeNode: TTreeNode);

  procedure LoadFields(ALayerInfo:TLayerTreeNodeRecord);
  var
    i:Integer;
    ADBShell:TSQLServerDBShell;
    AStruct:TQueryStruct;
    AMapField:TMapField;
  begin
    AStruct:=TQueryStruct.Create;
    try
      ADBShell:=TSQLServerDBShell.Create;
      try
        with ADBShell do
        begin
          DBFactory:=FDBFactory;
          GetQueryStruct(ALayerInfo.FileName, AStruct);
        end;
        for i:=0 to AStruct.Fields.Count-1 do
        begin
          AMapField:=ALayerInfo.Fields.Add;
          AMapField.FieldName:=AStruct.Fields.Items[i].ColName;
          AMapField.DisplayLabel:=AStruct.Fields.Items[i].Caption;
        end;
      finally
        ADBShell.Free;
      end;
    finally
      AStruct.Free;
    end;
  end;
  
var
  ALayerNode:TTreeNode;
  ALayerInfo:TLayerTreeNodeRecord;
begin
  with dm_Links.DBMachine1.CreateSingleDataSet do
  begin
    try
      SQL.Add('select LayerId, LayerName, FCId, TableName, DataFrom');
      SQL.Add('from t_Layers where FCId=:FCId order by LayerIndex');
      SetParamValue(0, FCId);
      Open;
      while not Eof do
      begin
        ALayerNode:=AddLayerNode(ATreeView, ATreeNode, naAddChild,
                     Fields[0].AsInteger, Fields[1].AsString,
                     Fields[3].AsString,
                     True, Fields[4].AsInteger,
                     Fields[2].AsInteger,2);
        ALayerInfo:=TLayerTreeNodeRecord(ALayerNode.Data);
        LoadFields(ALayerInfo);
        Next;
      end;
    finally
      Free;
    end;
  end;
end;

procedure TqcGISProject.LoadLayerTreeInfo;
var
  aRoot:TTreeNode;
  aFCItem:TTreeNode;
  aLayerInfo:TLayerTreeNodeRecord;
begin
  SysTree.Items.BeginUpdate;
  try
    {清空樹型列表}
    RemoveAllNodes;
    {創建系統圖層的根節點}
    aRoot:=SysTree.Items[0];
    {加載系統圖層,必須加載}
    with dm_Links.DBMachine1.CreateSingleDataSet do
    begin
      try
        SQL.Add('select FCId, FCName, FCIndex, LayerCount, Visible from t_FeatureClasses');
        SQL.Add('where LayerCount>0 order by FCIndex');
        Open;
        while not Eof do
        begin
          if Fields[3].AsInteger=1 then  //如果只有一個圖層,則加載在系統跟節點下//
            CreateFeatureClassNode(Fields[0].AsInteger, SysTree, aRoot)
          else begin  //如果有多個圖層,則先創建圖層組節點,然后將該圖層組的圖層加載進來//
            aFCItem:=SysTree.Items.AddChild(aRoot, Fields[1].AsString);
            aFCItem.ImageIndex:=1;
            aFCItem.SelectedIndex:=1;
            aFCItem.StateIndex:=TREENODESTATE_SUBCHECKEDALL;
            aLayerInfo:=TLayerTreeNodeRecord.Create;
            aFCItem.Data:=aLayerInfo;
            aLayerInfo.NodeType:=LTN_FEATURECLASS;
            aLayerInfo.Id:=Fields[0].AsInteger;
            aLayerInfo.Name:=Fields[1].AsString;
            aLayerInfo.IsSystem:=True;
            CreateFeatureClassNode(aLayerInfo.Id, SysTree, aFCItem)   //如果有多個圖層,則加載在圖層組下//
          end;
          Next;
        end;
      finally
        Free;
      end;
    end;
    {展開第一層節點}
    if SysTree.Items.Count>0 then
      SysTree.Items[0].Expand(False);
  finally
    SysTree.Items.EndUpdate;
  end;
end;

function TqcGISProject.LoadMenuItem(aPItem:TMenuItem; const Caption: string;
  const Tag: Integer; ClickProc: TNotifyEvent):TMenuItem;
begin
  Result:=TMenuItem.Create(aPItem.Owner);
  Result.Caption:=Caption;
  Result.Tag:=Tag;
  Result.OnClick:=ClickProc;
  aPItem.Add(Result);
end;

procedure TqcGISProject.LoadProject;
begin
  inherited LoadProject;
  //設置主窗口標題//
  Form_Main.Caption:=ProjectName;
  //因為嵌入VC或Delphi后點擊按鈕存在問題,所以隱藏//
  SetGISPageVisible(ID_PAGE_SEARCH, False);
  SetGISPageVisible(ID_PAGE_DRAW, False);
  //創建數據庫連接//
  Application.CreateForm(Tdm_Links, dm_Links);
  Application.CreateForm(Tdm_MainLinkObjects, dm_MainLinkObjects);
  //設置數據提交者的引擎//
  GDBPoster.Engine:=dm_Links.DBMachine1;
  //設置用戶信息的引擎//
  FDBFactory.Engine:=dm_Links.DBMachine1;
  //加載TrackLayer,目前該圖層沒有被使用,屬于保留圖層//
  with GMapTools.m_Layers do
    UserLayer:=CreateDefaultTempLayer('_YHB_SYS_TRACKLAYER', 1);
  //EXE程序,使用上次配置連接數據庫,其它方式登陸,使用函數連接數據庫//
  if AppType=atExe then
  begin
    //連接到數據庫//
    DefConnectToServer;
    //需要使用對話框獲取用戶信息//
    if dm_Links.DBMachine1.Connected then ConnectUseDialog;
    //如果連接到服務器,則調用DoAfterConnect進一步設置//
    if Connected then DoAfterUserConnect;
  end;
end;

procedure TqcGISProject.RefreshDotState(aDot:TDot);
var
  aFts:Features;
  aFt:Feature;
  NewColor:TColor;
begin
  if FDotLayer=nil then Exit;
  aFts:=FDotLayer.Search('DotID='+IntToStr(aDot.DotId), EmptyParam);
  if aFts.Count=1 then
  begin
    aFt:=aFts.Item[1];
    if aDot.DotState=dsLink then
      NewColor:=clRed
    else
      NewColor:=clBlack;
    if NewColor<>aFt.Style.LineColor then
    begin
      aFt.Style.LineColor:=NewColor;
      aFt.Update(EmptyParam, EmptyParam);
    end;
  end;
end;

procedure TqcGISProject.RefreshLineLayerState(const bChanged:Boolean);
var
  i:Integer;
  aFts:Features;
  aFt:Feature;
  aLine:TLine;
  NewColor:TColor;
begin
  if FLineLayer=nil then Exit;
  for i:=0 to FDLCtrl.Lines.ItemCount-1 do
  begin
    aLine:=FDLCtrl.Lines.Items[i];
    if (bChanged) and (not aLine.StateChanged) then
      Continue;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲另类在线一区| 91精品欧美久久久久久动漫| 蜜桃在线一区二区三区| 亚洲精品国产高清久久伦理二区| 综合欧美亚洲日本| 中文字幕中文字幕中文字幕亚洲无线| 欧美成人vps| 91精品国产免费久久综合| 欧美精品第1页| 欧美电视剧免费全集观看| 欧美精品一区二区三区很污很色的| 欧美成人aa大片| 国产亚洲欧美中文| 亚洲欧洲国产专区| 亚瑟在线精品视频| 免费观看成人av| 国产69精品久久久久毛片| 不卡视频一二三四| 欧美精品在线一区二区| 欧美v日韩v国产v| 国产精品乱人伦一区二区| 亚洲美女电影在线| 美女视频网站黄色亚洲| 成人影视亚洲图片在线| 欧美午夜理伦三级在线观看| 日韩精品一区在线| 国产精品国产三级国产三级人妇| 亚洲影视在线观看| 久88久久88久久久| 99麻豆久久久国产精品免费| 欧美日韩不卡一区二区| 久久久久久日产精品| 亚洲三级在线观看| 激情综合色播激情啊| 91理论电影在线观看| 欧美不卡视频一区| 一区二区成人在线视频| 激情五月婷婷综合网| 在线观看免费一区| 国产精品美女久久久久aⅴ| 五月天视频一区| 99久久婷婷国产综合精品电影 | 久久众筹精品私拍模特| 国产精品国产三级国产专播品爱网 | 色噜噜狠狠成人中文综合| 日韩一区二区三区电影在线观看| 日韩一区日韩二区| 蜜臀久久久久久久| 91福利小视频| 久久精品人人做人人爽97| 一区二区三区精品视频| 国产福利一区二区| 欧美一级免费大片| 亚洲mv在线观看| 日本久久一区二区三区| 国产精品入口麻豆九色| 加勒比av一区二区| 在线成人小视频| 亚洲高清免费观看| 色婷婷久久99综合精品jk白丝| 国产偷国产偷精品高清尤物| 免费成人在线视频观看| 欧美日韩高清影院| 亚洲国产精品久久不卡毛片| 在线观看日韩高清av| 亚洲靠逼com| 日本黄色一区二区| 亚洲欧美电影一区二区| 91亚洲精品久久久蜜桃| 中文字幕制服丝袜一区二区三区 | 国产精品一区二区不卡| 精品国产露脸精彩对白| 六月丁香综合在线视频| 日韩欧美一级特黄在线播放| 蜜桃精品视频在线观看| 欧美一级片免费看| 极品少妇一区二区| 久久五月婷婷丁香社区| 国产69精品久久久久777| 中文字幕第一区二区| 不卡视频免费播放| 亚洲男人的天堂av| 欧美日韩在线一区二区| 日韩激情视频在线观看| 精品久久久久香蕉网| 国产米奇在线777精品观看| 国产日韩v精品一区二区| 成人禁用看黄a在线| 亚洲一本大道在线| 88在线观看91蜜桃国自产| 六月丁香婷婷久久| 国产欧美日韩在线看| 97精品久久久久中文字幕| 亚洲最大色网站| 日韩女优视频免费观看| 成人av资源下载| 亚洲一区二区三区四区中文字幕| 91麻豆精品国产无毒不卡在线观看| 久久国产夜色精品鲁鲁99| 国产精品欧美极品| 精品视频一区三区九区| 精品亚洲成a人| 亚洲精品免费在线播放| 8x8x8国产精品| 成人国产精品免费网站| 天堂成人免费av电影一区| 久久免费看少妇高潮| 日本韩国一区二区三区| 精品一二线国产| 亚洲成人中文在线| 久久亚洲免费视频| 欧美三级蜜桃2在线观看| 国产剧情av麻豆香蕉精品| 亚洲少妇中出一区| 久久亚洲一区二区三区明星换脸| 在线观看精品一区| 国产激情精品久久久第一区二区| 亚洲成人黄色小说| 中文字幕第一页久久| 日韩精品影音先锋| 欧美日韩免费不卡视频一区二区三区| 狠狠色丁香久久婷婷综合_中| 一区二区三区在线视频免费| 国产夜色精品一区二区av| 欧美日韩亚洲国产综合| 99国产精品99久久久久久| 激情小说欧美图片| 丝袜美腿高跟呻吟高潮一区| 亚洲免费av观看| 国产精品久久久久久久第一福利| 精品毛片乱码1区2区3区| 欧美精品丝袜中出| 色综合久久天天| 99国产精品国产精品久久| 懂色av中文一区二区三区 | 亚洲欧美日韩一区二区| 久久久久久影视| 欧美r级在线观看| 91精品免费在线观看| 欧美性猛片aaaaaaa做受| 91香蕉国产在线观看软件| av动漫一区二区| 成人av先锋影音| heyzo一本久久综合| 国产福利一区二区三区视频| 国产毛片一区二区| 国产精品自拍三区| 国产一区二区按摩在线观看| 国产久卡久卡久卡久卡视频精品| 久久av老司机精品网站导航| 久久成人羞羞网站| 麻豆国产精品777777在线| 九九国产精品视频| 国产精品888| 成人动漫在线一区| 99久久亚洲一区二区三区青草| 不卡的av网站| 色综合天天天天做夜夜夜夜做| 91丨九色丨蝌蚪丨老版| 色哟哟国产精品| 欧美日韩三级一区| 日韩欧美www| 国产午夜亚洲精品理论片色戒| 久久久亚洲午夜电影| 中文字幕一区二区三中文字幕| 亚洲精品老司机| 日韩中文字幕不卡| 国产又粗又猛又爽又黄91精品| 大桥未久av一区二区三区中文| jiyouzz国产精品久久| 欧美色男人天堂| 精品播放一区二区| 国产精品视频yy9299一区| 亚洲自拍偷拍av| 九一九一国产精品| 91麻豆.com| 精品处破学生在线二十三| 综合久久国产九一剧情麻豆| 丝袜国产日韩另类美女| 国产精品一区2区| 欧美三级日韩三级国产三级| 久久综合九色综合97_久久久 | 欧美影院精品一区| 日韩欧美一区在线观看| 国产精品久久久久影院亚瑟| 亚洲国产aⅴ成人精品无吗| 久久国产剧场电影| 91国偷自产一区二区三区成为亚洲经典| 欧美日韩国产一级二级| 久久久www成人免费毛片麻豆 | 精品国产免费一区二区三区四区| 国产精品毛片久久久久久久| 日韩av在线播放中文字幕| 国产成人99久久亚洲综合精品| 欧美日韩久久一区| 国产精品久久久久影院色老大| 美女视频黄久久| 欧美吞精做爰啪啪高潮| 日本一区二区视频在线| 日本中文字幕不卡|