У меня есть приложение, в котором есть кнопка, которая при нажатии запускает запрос, затем считывает набор данных и добавляет маркеры в TGMMap/TGMMarker, соответствующие прочитанным значениям (оно также использует TGMGeoCode для геокодирования адресных значений, если это имеет значение) . При первом нажатии кнопки всегда размещается правильное количество (10) маркеров, но если я снова нажимаю кнопку сразу после отображения точек, рисуется случайное количество маркеров (иногда 3, иногда 1, иногда 5 и др.). Однако, если я подожду некоторое время (около 15-20 секунд), прежде чем снова нажать кнопку, всегда будет отображаться правильное количество точек, поэтому я уверен, что это какая-то проблема времени, когда DOM может быть построен не полностью. или какой-то скрипт все еще выполняется или ??? Есть ли какой-то флаг состояния, который я могу проверить, чтобы убедиться, что карта готова принять новые маркеры, или есть какой-то цикл ProcessMessage, который мне нужно реализовать, или ??
Код в основном работает так каждый раз, когда нажимается кнопка:
dataSet.Active := false;
dataset.Active := true;
Marker1.Clear();
while (dataset.Eof=false) do
begin
fGeoCoder.Geocode(address);
// Use first GeoCode result??
if (fGeoCoder.GeoStatus = gsOK) and (fGeoCoder.Count > 0) then
begin
geoResult := fGeoCoder.GeoResult[0];
lat := geoResult.Geometry.Location.Lat;
lng := geoResult.Geometry.Location.Lng;
marker := Marker1.Add(lat, lng);
end;
dataset.Next();
end;
Заранее благодарим за любую помощь, которую вы можете предоставить.