调用GMLIB.SetCenter时发生异常

时间:2018-07-10 09:16:56

标签: delphi gmlib

在我的主要表单上,我有一个客户列表。我可以选择一个客户,然后单击一个加载GMMap并显示有关该客户的信息并显示该客户位置的按钮。

这在第一次调用时效果很好,但是在后续调用中会产生异常。在地图表单的FormShow中是以下内容...

procedure TfrmMap.FormShow(Sender: TObject);
begin    
  if not gmMap.Active then
  begin
    gmMap.Active := true;
  end;

  gmMap.RequiredProp.Center.Lat := customer.Lat;
  gmMap.RequiredProp.Center.Lng := customer.Lng;


  //Either of the following cause the exception after the first call success
  gmMap.PanTo(gmMap.RequiredProp.Center.Lat, gmMap.RequiredProp.Center.Lng);
  gmMap.SetCenter(gmMap.RequiredProp.Center.Lat, gmMap.RequiredProp.Center.Lng);
end;

procedure TfrmMap.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  gmMap.Active := false;
end;

当我第二次调用gmMap.SetCenter或gmMap.PanTo时,出现异常...

Página inicial aun no cargada (Initial page not yet loaded)

但是,将setCenter调用移至“ AfterPageLoaded”事件会产生另一个异常(此页面上的脚本中发生了错误)。

我的问题是。每次我从主表单调用地图表单时,如何正确重置GMMap的中心以显示新的客户位置。

Delphi XE

GMLIB 1.5.5

1 个答案:

答案 0 :(得分:0)

我找到了解决方法。

我根本不需要致电setCenter。我只需要设置RequiredProps.Center.Lat和Lng即可。