|
初学X3中,导入mapx控件后成功,将delphi代码写入studio中出现了很多问题,很多属性和方法都Undeclared identifier ,如Undeclared identifier "miPositionTR"
,如何将delphi代码改写成X3的?
procedure TForm1.FormCreate(Sender: TObject);
var
fnewsymbol,fmapsymbol:cmapxfeature;
begin
init;
ffeature:=cofeature.Create;
ffeature.Attach(form1.Map1.DefaultDispatch);
ffeature.Type_ := miFeatureTypeSymbol;
ffeature.Style := carlayer.Style;
ffeature.KeyValue:='H12234';
ffeature.Point.Set_(-99.08,33.15);
ffeature:=carlayer.AddFeature(ffeature,EmptyParam);
end;
procedure TForm1.init;
var
carlayer:cmapxlayer;
begin
carlayer:=Form1.Map1.Layers.CreateLayer('cars','',1,100,Form1.map1.NumericCoordSys);
Form1.Map1.Layers.AnimationLayer := carlayer;
carlayer.LabelProperties.Position := miPositionTR;
carlayer.LabelProperties.Style.TextFontShadow := True;
carlayer.LabelProperties.Style.TextFontHalo := True;
carlayer.LabelProperties.Overlap := True;
carlayer.LabelProperties.Style.TextFontColor := clred;
carlayer.AutoLabel := True;
carlayer.Style.SymbolType :=1;
carlayer.Style.SymbolBitmapSize:=40;
carlayer.Style.SymbolBitmapName:='TAXI1-32.bmp';
carlayer.Style.SymbolBitmapTransparent:=true;
end;
procedure TForm1.Map1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
x1,y1:double;
x2,y2:single;
begin
x2:=x;
y2:=y;
map1.ConvertCoord(x2,y2,x1,y1,miScreenToMap);
label1.Caption:=FloatToStr(x1);
label2.Caption:=FloatToStr(y1);
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
fea:cmapxfeature;
lyrLayer ayer;
begin
ffeature.Point.Offset(0.05,0.05);
//移动图元 其中Offset(x,y)xy是两个经纬度之间的差距(改为两个经纬度的差)
ffeature.Update(EmptyParam, EmptyParam);
end;
mapx.pas源文件也是在论坛中搜集到的,望有好心的人帮忙看看,不胜感激了! |
|