WebBrowser未分配

我正在使用Delphi Xe4和谷歌地图库。 我创建了一个客户在dbgrid上寻址的示例应用程序。

在dbgrid事件上,我做到了

程序TForm1.DBGrid1DblClick(发件人:TObject); var endereco:string; pesquisarendereco:string;

开始

  WebBrowser1.Enabled := True;
   GMMap1.Active := True;

    if dsClienteEndereco.DataSet.RecordCount > 0 then

    begin

    GMGeoCode1.Geocode(qryClienteEndereco.FieldByName('ENDERECORESIDENCIA').AsString);
    endereco := qryClienteEnderecoENDERECORESIDENCIA.Value;

    GMMarker1.Items[dsClienteEndereco.DataSet.Recno].CenterMapToMarker;

    pesquisarendereco:='http://maps.google.com/maps?q='+endereco;
    WebBrowser1.Navigate(pesquisarendereco);

    end;

结束;

但是,当我双击它时,显示消息:webbrowser未被分配。

我如何解决这个问题?

最好的安德森


在通过GMMarker1将项目添加到地图之前,您需要确保地理编码器返回有效的坐标。 一旦你有了有效的坐标,GMMarker1组件希望你使用地理编码器的纬度和经度添加一个标记。 尝试这个:

   WebBrowser1.Enabled := True;
   GMMarker1.Map := GMMap1;
   GMMap1.WebBrower := WebBrowser1;
   GMMap1.Active := True;

    if dsClienteEndereco.DataSet.RecordCount > 0 then
    begin

      GMGeoCode1.Geocode(qryClienteEndereco.FieldByName('ENDERECORESIDENCIA').AsString);
      If GmGeoCode1.Count <> 0 then
      begin   
        endereco := qryClienteEnderecoENDERECORESIDENCIA.Value;
        GMMarker1.Add(GmGeoCode1[0].Geometry.Location.Lat, GmGeoCode1[0].Geometry.Location.Lng, endereco);
        GMMarker1.items[GMMarker1.Count-1].CenterMapToMarker;

        // you shouldn't need these lines, the WebBrowser should navigate on its own
        //pesquisarendereco:='http://maps.google.com/maps?q='+endereco;
        //WebBrowser1.Navigate(pesquisarendereco);
      end;

    end;

我将dbgrid双击更改为:

procedure TformHistoricoRotas.DBGrid1DblClick(Sender: TObject);

var 
endereco : string; 
pesquisarendereco : string; 
Marker :TMarker; 

begin     

WebBrowser1.Enabled := True; 
GMMarker1.Map := GMMap1; 
GMMap1.WebBrowser := WebBrowser1; 

GMMap1.Active := True; 
if dsClienteEndereco.DataSet.RecordCount > 0 then 
begin 
GMGeoCode1.Geocode(qryClienteEndereco.FieldByName('ENDERECORESIDENCIA').AsString); 
If GmGeoCode1.Count <> 0 then 
begin 
endereco := IntToStr(qryClienteEnderecoPRIORIDADE.Value)+', '+qryClienteEnderecoCHECKOUT.Value+', '+qryClienteEnderecoENDERECORESIDENCIA.Value; 
GMMarker1.Add(GmGeoCode1[0].Geometry.Location.Lat, GmGeoCode1[0].Geometry.Location.Lng, endereco); 
//GMMarker1.Add(GmGeoCode1[0].Geometry.Location.Lat, GmGeoCode1[0].Geometry.Location.Lng, endereco); 
GMMarker1.items[GMMarker1.Count-1].CenterMapToMarker; 
GMMap1.Precision := 30; 
end; 
end; 
end; 

它的工作。

现在,当我点击webbrowser内部谷歌地图上的dbgrid显示的任何行时。

链接地址: http://www.djcxy.com/p/35089.html

上一篇: WebBrowser not assigned

下一篇: How to get results of a TQuery en Delphi?