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