在我的程序中(使用Delphi 10.1 Berlin,Update 2 - 应用程序是FireMonkey),我使用了TLocationSensor。没有事件处理程序分配给事件OnLocationChanged
:
即使这样,我的应用程序也会抛出错误。我打开调试,发现System.Sensors中的以下代码正在执行:
procedure TCustomLocationSensor.DoLocationChanged(const OldLocation,
NewLocation: TLocationCoord2D);
begin
if Assigned(OnLocationChanged) and not (SameValue(OldLocation.Latitude, NewLocation.Latitude) and
SameValue(OldLocation.Longitude, NewLocation.Longitude)) then
OnLocationChanged(Self, OldLocation, NewLocation);
end;
出于某种原因,它试图触发OnLocationChanged。但是,鉴于我没有为它分配事件处理程序,它不应该试图触发此事件。
我现在已在我的表格OnLocationChanged:=nil;
事件中明确设置了OnCreate
。这似乎解决了这个问题(但我更愿意没有这个代码,因为我觉得我正在解决一个不应该发生的问题)。
我想我的问题是:我错过了什么吗?或者TLocationSensor存在问题吗?