|
阅读:679回复:0
[求助]图元设置问题
<P>本人创建了一个点层,在更换图元时可以一起更新成一图元,但要使代表不同类型设备的点显示不同图元符号就不可以了,请大侠们帮忙看看,或是提供一个思路。</P>
<P>/-----------------------------设定指定的ECustomMarkers-------------------------<BR>function pub_setICustomMarker(stindex:integer):ICustomMarker;<BR>var<BR> s:ICustomMarker;<BR>begin<BR> g_bcm.picname := tbpath+ inttostr(stindex)+'.bmp';<BR> s := ICustomMarker(g_bcm) ;<BR> result:=s;<BR>end;</P> <P>//----------------------------</P> <P> vmrender:=IMOvaluemaprenderer(CreateOleObject('MapObjects2.valuemaprenderer'));<BR> vmrender.Field:='imageindex';<BR> vmrender.ValueCount :=myrecset.Count;<BR> myrecset.MoveFirst ;<BR> i:=0;<BR> while not myrecset.EOF do<BR> begin<BR> imageindex:=strtoint(myrecset.Fields.Item('imageindex').valueasstring);<BR> vmrender.Value:=myrecset.Fields.Item('imageindex').valueasstring;<BR> vmrender.Symbol.Custom :=pub_setICustomMarker(imageindex);//此句出错<BR> vmrender.Symbol.Color :=clred;<BR> vmrender.Symbol.Size :=imageindex;<BR> myrecset.MoveNext ;<BR> i:=i+1;<BR> end;</P> <P> if IMoMapLayer(g_lys.Item(layindex)).shapeType = moShapeTypeMultipoint Then<BR> symInt:=0 Else symInt:= IMoMapLayer(g_lys.Item(layindex)).shapeType - 21 ;<BR> vmrender.SymbolType := symInt;<BR> IMoMapLayer(g_lys.Item(layindex)).Renderer:=vmrender;</P> |
|