今天又遇到了問題解決不了,建立層!!!

來源:互聯網
上載者:User

下面的代碼失敗了,但同等的delphi和Vb是成功的。先放在這,以後解決
bcb代碼如下:   
   CMapXLayerInfoDisp layerInfo;
   CMapXFieldsDisp fields;

   layerInfo.Bind(StringToOleStr("MapX.LayerInfo.5"));
   if(!layerInfo.IsBound()){
       ShowMessage("綁定MapX.LayerInfo.5失敗!!" );
       return;
   }
   fields.Bind(StringToOleStr("MapX.Fields.5"));
   if(!fields.IsBound()){
       ShowMessage("綁定MapX.Fields.5失敗!!" );
       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("sds")));
   layerInfo.AddParameter(WideString("Fields"), Variant((CMapXFields *)fields));
   CMapXLayer *newLayer = m_map->Layers->Add(Variant((CMapXLayerInfo *)layerInfo), EmptyParam);
   if(newLayer == NULL){
      ShowMessage("建立MapX.Layer失敗!!");
      layerInfo.Unbind(true);
      fields.Unbind(true);
      return;
   }
Dephi代碼如下(能正常運行)
  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
        ShowMessage('錯誤');
  end;

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.