关于MO的问题(299分)

  • 主题发起人 主题发起人 freeknight2001
  • 开始时间 开始时间
F

freeknight2001

Unregistered / Unconfirmed
GUEST, unregistred user!
用DELPHI+MO开发,请问怎么画线,比如连接(0,0)和(100,100)。
写出代码,分不够可以再加
 
唉!进来才发现我不知道MO为何物,抱歉!
 
在单元中引用ComObj后:
1。定点画线:
procedure TForm1.Button1Click(Sender: TObject);
var
pt : point;
pts: points;
ln : Line;
begin
pt := point(CreateOleObject('MapObjects2.point'));
pts := points(CreateOleObject('MapObjects2.points'));

pt.X:=map1.Extent.Left;
pt.Y:=map1.Extent.Top-map1.Extent.Height/2;
pts.Add(pt);
pt.X:=map1.Extent.Left+map1.Extent.Width/4;
pt.Y:=map1.Extent.Top-map1.Extent.Height/4;
pts.Add(pt);
pt:=map1.Extent.Center;
pts.Add(pt);
pt.X:=map1.Extent.Center.x+map1.Extent.Width/4;
pt.Y:=map1.Extent.Top-map1.Extent.Height/4;
pts.Add(pt);

ln:=line(CreateOleObject('MapObjects2.line'));
ln.Parts.Add(pts);


map1.TrackingLayer.Refresh(true,'');

end;
2。TrackingLayer层里画线
procedure TForm1.Map1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
pt : point;
pts: points;
ln : Line;
tl : TrackingLayer;
sym: Symbol;
begin
tl:=TrackingLayer(CreateOleObject('MapObjects2.TrackingLayer'));
tl:=map1.TrackingLayer;
tl.SymbolCount:=1;

sym := Symbol(CreateOleObject('MapObjects2.Symbol'));
sym:=tl.Symbol[0]; //定义直线符号
sym.SymbolType:=1;
sym.Color :=moBlue;
sym.style:=moSolidLine;

ln:=line(CreateOleObject('MapObjects2.line'));
ln:=map1.TrackLine;
Map1.TrackingLayer.AddEvent(ln,0);

end;
3。还可以在Map.refresh调用的特定Map事件(AfterTrackingLayer)中,调用DrawShape()画线。
 
楼上说得很对,但好像不完全
我发个EMail给你,看满意吗?
 
http://www.delphibbs.com/delphibbs/listq.asp?type=2&userfrom=hunzean
哈哈
 
唉,何必呢?何苦呢?
 
MO是什么。。
我以为是MO驱动器呢。。。
 
MO是啥:(
 
长见识了!楼主可以介绍一下吗?
 
对哈!有mo的问题都来问楼主哈!他真的是专家也![:D]
 
楼主人间蒸发了吗?
 
这么倒分有意思吗?
 
接受答案了.
 
后退
顶部