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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? mapxapis.pas

?? 此代碼是關(guān)于mapgis的在
?? PAS
?? 第 1 頁 / 共 3 頁
字號:
    Result:=False
  else
    case Ft.type_ of
      miFeatureTypeRegion,
      miFeatureTypeLine:begin
        Result:=True;
      end;
      else begin
        Result:=False;
      end;
    end;
end;

function ShapeCanDeletePoint(Ft:Feature; PartIndex:Integer):Boolean;
begin
  if not Ft.Layer.Editable then
    Result:=False
  else
    case Ft.type_ of
      miFeatureTypeRegion:begin
        Result:=Ft.Parts.Item[PartIndex].Count>3;
      end;
      miFeatureTypeLine:begin
        Result:=Ft.Parts.Item[PartIndex].Count>2;
      end;
      else begin
        Result:=False;
      end;
    end;
end;

function ShapeCanEditPoint(Ft:Feature; PartIndex:Integer):Boolean;
begin
  Result:=Ft.Layer.Editable;
end;

function GetShapePoint(Ft:Feature; const PartIndex, PointIndex:Integer):Point;
begin
  case Ft.type_ of
    miFeatureTypeSymbol,
    miFeatureTypeText:begin
      Result:=Ft.Point;
    end;
    else begin
      Result:=Ft.Parts.Item[PartIndex].Item[PointIndex];
    end;
  end;
end;

function GetFirstShapeInSelction(ASelection:Selection; const ShapeType:Integer):Feature;
var
  i:Integer;
  ft:Feature;
begin
  Result:=nil;
  for i:=1 to ASelection.Count do
  begin
    ft:=ASelection.Item[i];
    if ft.type_=ShapeType then
    begin
      Result:=ft;
      Exit;
    end;
  end; 
end;

procedure AlignLeft(ASelection:Selection);
var
  i:Integer;
  v_x0, v_x:Double;
  ft:Feature;
begin
  if ASelection.Count>1 then
  begin
    v_x0:=ASelection.Item[1].Bounds.XMin;
    for i:=2 to ASelection.Count do
    begin
      ft:=ASelection.Item[i];
      v_x:=ft.Bounds.XMin;
      ft.Offset(v_x0-v_x, 0);
      ft.Update(EmptyParam, EmptyParam);
    end;
  end;
end;

procedure AlignRight(ASelection:Selection);
var
  i:Integer;
  v_x0, v_x:Double;
  ft:Feature;
begin
  if ASelection.Count>1 then
  begin
    v_x0:=ASelection.Item[1].Bounds.XMax;
    for i:=2 to ASelection.Count do
    begin
      ft:=ASelection.Item[i];
      v_x:=ft.Bounds.XMax;
      ft.Offset(v_x0-v_x, 0);
      ft.Update(EmptyParam, EmptyParam);
    end;
  end;
end;

procedure AlignTop(ASelection:Selection);
var
  i:Integer;
  v_y0, v_y:Double;
  ft:Feature;
begin
  if ASelection.Count>1 then
  begin
    v_y0:=ASelection.Item[1].Bounds.YMax;
    for i:=2 to ASelection.Count do
    begin
      ft:=ASelection.Item[i];
      v_y:=ft.Bounds.YMax;
      ft.Offset(0, v_y0-v_y);
      ft.Update(EmptyParam, EmptyParam);
    end;
  end;
end;

procedure AlignBottom(ASelection:Selection);
var
  i:Integer;
  v_y0, v_y:Double;
  ft:Feature;
begin
  if ASelection.Count>1 then
  begin
    v_y0:=ASelection.Item[1].Bounds.YMin;
    for i:=2 to ASelection.Count do
    begin
      ft:=ASelection.Item[i];
      v_y:=ft.Bounds.YMin;
      ft.Offset(0, v_y0-v_y);
      ft.Update(EmptyParam, EmptyParam);
    end;
  end;
end;

procedure AlignCenter_X(ASelection:Selection);
var
  i:Integer;
  v_x0, v_x:Double;
  ft:Feature;
begin
  if ASelection.Count>1 then
  begin
    v_x0:=ASelection.Item[1].CenterX;
    for i:=2 to ASelection.Count do
    begin
      ft:=ASelection.Item[i];
      v_x:=ft.CenterX;
      ft.Offset(v_x0-v_x, 0);
      ft.Update(EmptyParam, EmptyParam);
    end;
  end;
end;

procedure AlignCenter_Y(ASelection:Selection);
var
  i:Integer;
  v_y0, v_y:Double;
  ft:Feature;
begin
  if ASelection.Count>1 then
  begin
    v_y0:=ASelection.Item[1].CenterY;
    for i:=2 to ASelection.Count do
    begin
      ft:=ASelection.Item[i];
      v_y:=ft.CenterY;
      ft.Offset(0, v_y0-v_y);
      ft.Update(EmptyParam, EmptyParam);
    end;
  end;
end;

procedure OffestShapes(ASelection:Selection; const dx, dy:Double);
var
  i:Integer;
  ft:Feature;
begin
  for i:=1 to ASelection.Count do
  begin
    ft:=ASelection.Item[i];
    ft.Offset(dx, dy);
    ft.Update(EmptyParam, EmptyParam);
  end;
end;

function AddCopyFeature(ToLayer:Layer; Ft:Feature; ds:CMapXDataSet;
  const bAddData:Boolean):Feature;
var
  i:Integer;
  rvs:RowValues;
  newrvs:RowValues;
begin
  if ds<>nil then
    rvs:=ds.RowValues[ft]
  else
    rvs:=nil;
  if rvs=nil then
    Result:=ToLayer.AddFeature(ft, EmptyParam)
  else
  begin
    newrvs:=CreateRowValuesFromStruct(ds.Fields, ToLayer.DataSets.Item[1]);
    for i:=1 to ds.Fields.Count do
      newrvs.Item[i].Value:=rvs.Item[i].Value;
    Result:=ToLayer.AddFeature(ft, newrvs);
  end;
end;

function PickStyle(mstyle:OleVariant; const pm:TPickMethod):Boolean;
begin
  case pm of
    pmSymbol  : Result:=mstyle.PickSymbol;
    pmLine    : Result:=mstyle.PickLine;
    pmRegion  : Result:=mstyle.PickRegion;
    pmText    : Result:=mstyle.PickText;
    else        Result:=False;
  end;
end;

function EditMapStyle(MapX:TMapXObject; const pm:TPickMethod;
  const bEffectAllLayers, bEffectAllFeatures:Boolean):Boolean;
var
  i:Integer;
  Lyr:Layer;
  mstyle: OleVariant;
begin
  mstyle:=MapX.DefaultStyle.Clone;
  Result:=PickStyle(mstyle, pm);
  if bEffectAllLayers then
    for i:=1 to MapX.Layers.Count do
    begin
      Lyr:=MapX.Layers.Item[i];
      Lyr.Style:=Style(IDispatch(mstyle));
      Lyr.OverrideStyle:=bEffectAllFeatures;
    end;
end;

function EditLayerStyle(Lyr:Layer; const pm:TPickMethod;
  const bEffectAllFeatures:Boolean):Boolean;
var
  mstyle: OleVariant;
begin
  mstyle:=Lyr.Style.Clone;
  Result:=PickStyle(mstyle, pm);
  Lyr.Style:=Style(IDispatch(mstyle));
  Lyr.OverrideStyle:=bEffectAllFeatures;
end;

function GetFeaturePickMethod(ft:Feature):TPickMethod;
begin
  case ft.type_ of
    miFeatureTypeRegion     : Result:=pmRegion;
    miFeatureTypeLine       : Result:=pmLine;
    miFeatureTypeSymbol,
    miFeatureTypeMultipoint : Result:=pmSymbol;
    miFeatureTypeText       : Result:=pmText;
    else                      Result:=pmUnknown;
  end;
end;

function EditFeatureStyle(ft:Feature):Boolean;
var
  pm:TPickMethod;
  mstyle: OleVariant;
begin
  ft.Layer.OverrideStyle:=False;
  mstyle:=ft.Style.Clone;
  pm:=GetFeaturePickMethod(ft);
  Result:=PickStyle(mstyle, pm);
  if Result then
  begin
    ft.Style:=Style(IDispatch(mstyle));
    ft.Update(EmptyParam, EmptyParam);
  end;
end;

procedure LoadSymbolBitmap(const SourceFile, SymbolPath:string);
var
  DestFile:string;
begin
  DestFile:=GetFilePath_GradientLine(SymbolPath)+ExtractFileName(SourceFile);
  if FileExists(SourceFile) then CopyFile(PChar(SourceFile), PChar(DestFile), False);
end;

procedure LoadSymbolBitmaps(Files:TStrings; SymbolPath:string);
var
  i:Integer;
  SourceFile:string;
  DestFile:string;
begin
  if not DirectoryExists(SymbolPath) then
    raise Exception.Create('路徑 '+SymbolPath+' 不存在!');
  for i:=0 to Files.Count-1 do
  begin
    SourceFile:=Files.Strings[i];
    DestFile:=GetFilePath_GradientLine(SymbolPath)+ExtractFileName(SourceFile);
    if FileExists(SourceFile) then CopyFile(PChar(SourceFile), PChar(DestFile), False);
  end;
end;

procedure LoadSymbolBitmaps(UserPath:string; const ForceCopy:Boolean);
var
  SymbolPath:string;
  hFindFile:Cardinal;
  sCurDir:String[255];
  FindData:TWin32FindData;
  ShortFileName:string;
  SourceFileName, DestFileName:string;
  ErrorDir: string;
begin
  UserPath:=CheckPath(UserPath);
  SymbolPath:=CheckPath(GetMapXBitmapPath);
  if (not DirectoryExists(UserPath)) or
     (not DirectoryExists(SymbolPath)) then Exit;
  {保存當(dāng)前目錄并設(shè)置目標(biāo)路徑為當(dāng)前目錄}
  sCurDir:=GetCurrentDir;
  ChDir(UserPath);
  try
    {查找目標(biāo)路徑下所有文件}
    hFindFile:=FindFirstFile('*.bmp',FindData);
    if hFindFile <> INVALID_HANDLE_VALUE then
    begin
      {分析該目錄并完成刪除多余文件或目錄的任務(wù)}
      repeat
        {取得目標(biāo)文件名}
        ShortFileName:=FindData.cFileName;
        {如果為上層路徑,則Continue}
        if (ShortFileName='.') or (ShortFileName='..') then
          Continue;
        DestFileName:=SymbolPath+ShortFileName;
        if ForceCopy then
        begin
          SourceFileName:=UserPath+ShortFileName;
          CopyFile(PChar(SourceFileName), PChar(DestFileName), False);
        end
        else if not FileExists(DestFileName) then
        begin
          SourceFileName:=UserPath+ShortFileName;
          CopyFile(PChar(SourceFileName), PChar(DestFileName), True);
        end;
      until FindNextFile(hFindFile, FindData)=False;
      Windows.FindClose(hFindFile);
      {刪除目標(biāo)目錄多余的文件}
    end;
  finally
    {回到原來的目錄下}
    ChDir(sCurDir);
  end;
end;

function SymbolBitmapExists(SymbolPath, SymbolName:string):Boolean;
var
  DestFile:string;
begin
  DestFile:=GetFilePath_GradientLine(SymbolPath)+SymbolName;
  Result:=FileExists(DestFile);
end;

procedure ConfigLineStyleFromRegionStyle(ToStyle, FromStyle:Style);
begin
  ToStyle.LineColor:=FromStyle.RegionBorderColor;
  ToStyle.LineStyle:=FromStyle.RegionBorderStyle;
  ToStyle.LineWidth:=FromStyle.RegionBorderWidth;
  ToStyle.LineWidthUnit:=FromStyle.RegionBorderWidthUnit;
end;

procedure ConfigRegionStyleFromLineStyle(ToStyle, FromStyle:Style);
begin
  ToStyle.RegionBorderColor:=FromStyle.LineColor;
  ToStyle.RegionBorderStyle:=FromStyle.LineStyle;
  ToStyle.RegionBorderWidth:=FromStyle.LineWidth;
  ToStyle.RegionBorderWidthUnit:=FromStyle.LineWidthUnit;
end;

function GetMapXPath:string;
var
  Reg: TRegistry;
begin
  Reg:=Tregistry.Create;
  try
    Reg.RootKey :=HKEY_LOCAL_MACHINE;
    if Reg.OpenKey ('SOFTWARE\Mapinfo\MapX\5.0', False) then
      Result:=Reg.ReadString('ProgramDir')
    else
      Result:='';
    Reg.CloseKey;
  finally
    Reg.Destroy;
  end;
end;

function GetMapXBitmapPath:string;
begin
  Result:=GetMapXPath;
  if Result<>'' then
    Result:=CheckPath(Result)+'CUSTSYMB';
end;

function GetGeoDictionaryFile:string;
var
  Reg: TRegistry;
begin
  Reg:=Tregistry.Create;
  try
    Reg.RootKey :=HKEY_LOCAL_MACHINE;
    if Reg.OpenKey ('SOFTWARE\Mapinfo\MapX\5.0', False) then
      Result:=Reg.ReadString('GeoDictionary')
    else
      Result:='';
    Reg.CloseKey;
  finally
    Reg.Destroy;
  end;
end;

function SetGeoDictionaryFile(const FileName:string):Boolean;
var
  Reg: TRegistry;
begin
  Result:=False;
  Reg:=Tregistry.Create;
  try
    Reg.RootKey :=HKEY_LOCAL_MACHINE;
    if Reg.OpenKey ('SOFTWARE\Mapinfo\MapX\5.0', True) then
    begin
      Reg.WriteString('GeoDictionary', FileName);
      Result:=True;
    end;
    Reg.CloseKey;
  finally
    Reg.Destroy;
  end;
end;

function GetGeoDictionaryFileSearchPath(List:TStrings):Boolean;
var
  Reg:TRegistry;
  aStr:string;
begin
  Result:=False;
  Reg:=Tregistry.Create;
  try
    Reg.RootKey :=HKEY_LOCAL_MACHINE;
    if Reg.OpenKey ('SOFTWARE\Mapinfo\MapX\5.0', False) then
    begin
      aStr:=Reg.ReadString('SearchPaths');
      Result:=True;
    end;
    Reg.CloseKey;
  finally
    Reg.Destroy;
  end;
  if Result then
    Trans2(aStr, ';', List);
end;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲免费av在线| 国产成人午夜精品5599| 欧美唯美清纯偷拍| 亚洲日本va午夜在线影院| 久久国产精品72免费观看| 欧美丝袜丝交足nylons| 精品成人一区二区三区| 日韩不卡在线观看日韩不卡视频| 91小视频在线观看| 亚洲欧美国产高清| 色综合久久中文字幕综合网| 国产精品萝li| 国产传媒欧美日韩成人| 国产亚洲综合av| 成人国产精品免费| 亚洲精品乱码久久久久| 色婷婷久久99综合精品jk白丝| 亚洲私人黄色宅男| 欧美色涩在线第一页| 亚洲mv在线观看| 日韩午夜精品电影| 亚洲亚洲精品在线观看| 欧美一区二区三区日韩视频| 日韩av一区二区在线影视| 欧美日韩国产美| 日韩精品国产欧美| 国产精品你懂的在线| 在线视频你懂得一区| 久久99在线观看| 亚洲视频免费观看| 欧美日韩精品欧美日韩精品一综合| 麻豆91在线观看| 一区二区三区四区在线| 精品国产乱子伦一区| jlzzjlzz亚洲日本少妇| 日韩国产精品久久| 国产精品成人免费精品自在线观看| 这里只有精品99re| 91在线观看下载| 国产一区二区三区四区在线观看| 国产精品无人区| 欧美日韩成人综合| 色偷偷成人一区二区三区91| 蜜臀久久99精品久久久画质超高清| 国产精品家庭影院| 国产色一区二区| 欧美大尺度电影在线| 欧美一区二区三区成人| jlzzjlzz亚洲日本少妇| 国产乱人伦偷精品视频免下载 | 视频一区视频二区中文| 亚洲伦在线观看| 成人免费在线观看入口| 国产精品欧美久久久久无广告| 欧美一级黄色大片| 777精品伊人久久久久大香线蕉| 色综合久久88色综合天天免费| 蜜桃在线一区二区三区| 亚洲人午夜精品天堂一二香蕉| 国产精品美女久久久久久久久久久 | 欧美一区二区视频在线观看2020| 91福利小视频| 欧洲色大大久久| 中文字幕不卡在线观看| 亚洲少妇30p| 亚洲靠逼com| 亚洲欧洲韩国日本视频| 亚洲午夜成aⅴ人片| 婷婷丁香久久五月婷婷| 久草在线在线精品观看| 免费一级片91| 国产白丝精品91爽爽久久| 豆国产96在线|亚洲| 在线欧美日韩精品| 欧美白人最猛性xxxxx69交| 久久久精品国产免大香伊| 国产精品激情偷乱一区二区∴| 亚洲精品国久久99热| 日韩专区欧美专区| 成人v精品蜜桃久久一区| 欧美日韩中文一区| 中文在线一区二区| 麻豆国产精品视频| 欧美在线一二三四区| 久久久久久久久一| 午夜精品福利一区二区三区av| 国产成人综合网站| 欧美一级夜夜爽| 夜夜夜精品看看| 国产+成+人+亚洲欧洲自线| 欧美日韩日日夜夜| 亚洲裸体xxx| youjizz久久| 久久新电视剧免费观看| 日韩精品色哟哟| 6080午夜不卡| 亚洲bt欧美bt精品777| 成人黄色网址在线观看| 日韩精品一区二| 午夜精品国产更新| 日韩欧美一级精品久久| 国产超碰在线一区| 亚洲三级在线播放| 欧美放荡的少妇| 久久疯狂做爰流白浆xx| 国产欧美一区二区三区鸳鸯浴| 波多野洁衣一区| 亚洲猫色日本管| 欧美v亚洲v综合ⅴ国产v| 成人亚洲精品久久久久软件| 综合久久久久久久| 精品污污网站免费看| 麻豆精品久久精品色综合| 国产日韩精品久久久| 欧美在线一区二区| av在线一区二区| 麻豆精品一区二区三区| 国产精品久久久久久久久免费樱桃| 91国产精品成人| 国产精品一品视频| 日韩精品成人一区二区三区 | 91福利小视频| 国产美女主播视频一区| 亚洲va韩国va欧美va| 国产精品福利av| 精品播放一区二区| 欧美一区二区三区人| 日本丶国产丶欧美色综合| 国产一区二区调教| 久草在线在线精品观看| 日欧美一区二区| 午夜欧美电影在线观看| 亚洲美女在线国产| 成人欧美一区二区三区黑人麻豆| 久久久久久亚洲综合影院红桃| 8v天堂国产在线一区二区| 色视频欧美一区二区三区| 99精品久久久久久| 99re亚洲国产精品| 精品三级av在线| 日韩精品一区二区三区老鸭窝| 91精品在线观看入口| 欧美一区二区三区精品| 欧美sm极限捆绑bd| 久久影院视频免费| 国产精品三级视频| 亚洲欧美日韩中文播放| 亚洲国产你懂的| 热久久久久久久| 国产一二精品视频| 99国产精品国产精品毛片| 色婷婷综合久久久久中文一区二区 | 色94色欧美sute亚洲线路一ni| 91极品视觉盛宴| 欧美精选午夜久久久乱码6080| 欧美日韩视频不卡| 久久奇米777| 亚洲美女区一区| 免费成人结看片| voyeur盗摄精品| 8x福利精品第一导航| 久久九九99视频| 午夜精品免费在线| 国产成人av电影在线| 一本到不卡免费一区二区| 欧美日韩国产系列| 国产色产综合色产在线视频| 亚洲精品国产第一综合99久久| 天堂av在线一区| 成人免费毛片高清视频| 欧美日韩一区三区| 欧美国产日韩a欧美在线观看| 午夜精品影院在线观看| 不卡一区在线观看| 日韩视频123| 亚洲国产综合91精品麻豆| 国产在线精品一区二区不卡了 | 欧美色爱综合网| 综合欧美亚洲日本| av资源站一区| 亚洲精品一区二区精华| 天天av天天翘天天综合网| 91老司机福利 在线| 久久精品免视看| 国产在线不卡一区| 欧美不卡激情三级在线观看| 欧美a一区二区| 在线综合视频播放| 日韩在线观看一区二区| 欧美剧在线免费观看网站| 亚洲免费在线视频| 99国内精品久久| 亚洲黄色免费网站| 日本大香伊一区二区三区| 亚洲欧美偷拍另类a∨色屁股| 99热这里都是精品| 一区二区三区四区亚洲| 欧美精品少妇一区二区三区| 天天av天天翘天天综合网 | 中文字幕va一区二区三区|