I have encountered problems today, I can't solve it, create a layer !!!

xiaoxiao2021-03-06  39

The following code fails, but the same Delphi and VB are successful. Put this first, then solve the BCB code as follows: CMapxLayerInfodisp LayerInfo; cMapxfieldsdisp Fields;

LayerInfo.Bind (StringToolestr ("Mapx.LayerInfo.5)); if (!") {showMessage ("Bind Mapx.LayerInfo.5 failed !!"); return;} fields.bind (StringToolestr ("Mapx.fields.5")); if (! Fields.Isbound ()) {showMessage ("Bind Mapx.fields.5 failed !!"); layerinfo.unbind (true); return;} fields.addstringfield (Variant ("ID"), Variant (12), EMPTYPARAM; Fields.AddStringfield (Variant ("Name"), Variant (50), EMPTYPARAM); Fields.AddNumericfield (Variant ("Deptch"), Variant (12) , Variant (2), EmptyParam); fields.AddIntegerField (Variant ( "Length"), EmptyParam); layerInfo.Type = miLayerInfoTypeNewTable; layerInfo.AddParameter (WideString ( "FileSpec"), Variant (WideString ( "c: // test . Tab "))); LayerInfo.addParameter (WideString (" Name "), Variant (WideString (" Fields "), Variant (CMAPXFIELDS *) FIELDS); CMAPXLAYER * NEWLAYER = m_map-> layers-> add (variant (cMapxLayerInfo *) LayerInfo, EMPTYPARAM); if (newLayer == NUL L) {ShowMessage ("Create Mapx.Layer Failed !!"); LayerInfo.unbind (True); Fields.unbind (True); Return;} DEPHI code is as follows (Can run) LYR: cMapxLayer; LayerInfo: cMapxLayerInfo; FLDS : CMapXFields; FileSpec: String; begin LayerInfo: = CoLayerInfo.Create (); Flds: = CoFields.Create (); Flds.AddStringField ( 'ID', 12, EmptyParam); Flds.AddStringField ( 'Name', 50, EmptyParam Flds.addNumericfield ('Deptch', 12, 2, EMPTYPARAM); FLDS.Addintegerfield ('Length', EMPTYPARAM);

LayerInfo.Type_: = miLayerInfoTypeNewTable; LayerInfo.AddParameter ( 'FileSpec', 'c: /test.tab'); LayerInfo.AddParameter ( 'NAME', 'hello'); LayerInfo.AddParameter ( 'Fields', Flds); Lyr : = Map1.Layers.Add (LayerInfo, EMPTYPARAM); if (lyr = nil) THEN BEGIN SHOWMESAGE ('Error');

转载请注明原文地址:https://www.9cbs.com/read-86149.html

New Post(0)