-
Постов
1 204 -
Зарегистрирован
-
Посещение
-
Победитель дней
26
Весь контент Rusland
-
ZuBy, насколько помню вышеуказанный код брал у вас (из примера TMapsEngine)... на других устройствах работает нормально, а тут какая-то непонятка. Есть какие-нибудь идеи как решить проблему?
-
Вынес из потока if Assigned(mPolyLine) then mPolyLine.Remove; {$IFDEF ANDROID} TTask.Run( procedure begin mEnginel.SetOptionsGoogleDistance('AIz...Jg'); mEnginel.GoogleDistance(TMapCoordinate.Create(ALat,ALon), TMapCoordinate.Create(BLat,BLon), mRoutePoints, mRouteInfo); // построение маршрута TThread.Synchronize(TThread.CurrentThread, procedure var RoutePoints: TMapPolylineDescriptor; mPolyLineTmp: TMapPolyline; begin ToastMsg('Маршрут проложен '+ObjectName+#13#10#13#10+ ' Расстояние: ' + mRouteInfo.DistanceAsString +#13#10+ ' Расчетное время: ' + mRouteInfo.DurationAsString); // рисуем маршрут RoutePoints:=TMapPolylineDescriptor.Create(mRoutePoints); RoutePoints.StrokeWidth:=6; RoutePoints.StrokeColor:=TAlphaColorRec.Indigo; mPolyLineTmp:=MapView.AddPolyline(RoutePoints); mPolyLine:=mPolyLineTmp; // ошибка перешла сюда end); end); {$ENDIF} mPolyLine в паблик секции public { Public declarations } mPolyLine: TMapPolyline; Почему при записи в глобальную переменную происходит ошибка? krapotkin, при старорежимной конструкции можно ли будет записывать в глобальную переменную? Вы пробовали?
-
Вот код постройки маршрута procedure TFrmMain.MakeRoute(ALat,ALon,BLat,BLon:Double; ObjectName:String); // построение маршрута var MC: TMapCoordinate; begin {$IFDEF ANDROID} TTask.Run( procedure begin mEnginel.SetOptionsGoogleDistance('AIz...IJg'); mEnginel.GoogleDistance(TMapCoordinate.Create(ALat,ALon), TMapCoordinate.Create(BLat,BLon), mRoutePoints, mRouteInfo); TThread.Synchronize(TThread.CurrentThread, procedure var RoutePoints: TMapPolylineDescriptor; begin if Assigned(mPolyLine) then mPolyLine.Remove; // выдает Invalid class typecast ToastMsg('Маршрут проложен '+ObjectName+#13#10#13#10+ ' Расстояние: ' + mRouteInfo.DistanceAsString +#13#10+ ' Расчетное время: ' + mRouteInfo.DurationAsString); // рисуем маршрут RoutePoints := TMapPolylineDescriptor.Create(mRoutePoints); RoutePoints.StrokeWidth:=6; RoutePoints.StrokeColor:=TAlphaColorRec.Red; mPolyLine := MapView.AddPolyline(RoutePoints); end); end); {$ENDIF} end; У меня подозрение, что ошибка происходит при обращении внутри конструкции TTask.Run( procedure begin TThread.Synchronize(TThread.CurrentThread, procedure begin // тут end); end); к глобальным переменным. mPolyLine: TMapPolyline; MyMarker: TMapMarker; LMarkers: TList<TMapMarker>; это все глобальные переменные. Что я делаю не так?
-
ZBar отлично работает и под разными углами
-
Решилась проблема на планшете Б - в настроках Местоположение -> Режим определения нужно было выставить Максимальная точность (а было Только по GPS). Осталось определить почему зависает планшет А. Есть какие-нибудь идеи?
-
Есть два планшета Lenovo Tab 2 A7-30DC (назовем их A и Б). Есть написанная на Berlin программа с MapView. По умолчанию у обоих стояла ОС Android 4.4.2. На A я обновил операционку до максимальной официальной версии 5.0.1, на Б оставил 4.4.2 На Б программа худо-бедно работает, но на MapView не показывает синюю точку - текущее местоположение (сторонние программы GPS Status, Яндекс Навигатор GPS координаты ловят нормально). Пробовал компилировать на Seattle - тоже самое. LocationSensor сначала неправильно показал координаты, ошибся на 300км, но после перезапуска программы стал показывать правильно. Почему MapView не показывает, не понимаю. На А программа зависает при попытке поставить метку на MapView или нарисовать маршрут получаю Segmentation fault. Вот, например: procedure TFrmMain.SetMarkerOnMap(Id:integer;NaimObj,AdrObj:String;Lat,Lon:Double); var Descrip: TMapMarkerDescriptor; MyLocation: TMapCoordinate; begin TThread.Queue(TThread.CurrentThread, procedure begin try if (MapView.Visible) then begin MyLocation:=TMapCoordinate.Create(Lat,Lon); Descrip:=TMapMarkerDescriptor.Create(MyLocation); Descrip.Icon:=ImObjBlueMarker.Bitmap; Descrip.Draggable:=False; Descrip.Title:=NaimObj; Descrip.Snippet:='['+Id.ToString+'] '; if (AdrObj<>'') then Descrip.Snippet:=Descrip.Snippet+AdrObj; MyMarker:=MapView.AddMarker(Descrip); // тут Segmentation fault LMarkers.Add(MyMarker); end; except end; end); end; Как решить проблему?
-
У меня возникла похожая проблема, но на Berlin. Есть два одинаковых 7'' планшета: на одном оставил версию что была по умолчанию 4.4.2, а на другом обновлял официальную прошивку до последней 5.0.1 На первом проблема с поиском координат (в других программах типа ЯндексНавигатор координаты сразу находит), на втором Segmentation fault при добавлении маркера и создании маршрута на MapView. На третьем 8'' планшете все работает хорошо.
-
Нашел интересный пример двумерной графики \Object Pascal\Multi-Device Samples\Physics\TestBed На Windows все нормально, а вот на Android: 1.) Не отображаются круги и треугольники 2.) Ухватить тонкие элементы не реально 3.) Когда выбираю Tiles, Pyramid или Tumbler (другими словами когда много объектов), то начинаются дикие тормоза. Процессор не слабенький. Почему?
-
Достаточно Hittest=true (он по умолчанию у Label=false)
-
Kitty, есть же OnTap и Hittest надо выставить true
-
Попробовал, теперь это место проходит... Может ответ кодировать надо?
-
Volt-, на строке MainForm.IdDNSResolver.Resolve(S); ругается: До ABinding.SendTo не доходит управление
-
Только что на пустом проекте поставил Edit, выставил ему KillFocusByReturn=true и теперь после редактирования когда я нажимаю кнопку Return на виртуальной клавиатуре, она (клавиатура) просто скрывается. Никакие переводы картеки не делаются. Разве не стандартное решение? Kitty, приложите свой тестовый проект.
-
Вам не KillFocusByReturn=true нужен? Еще есть свойство ReturnKeyType
-
Действительно, убрал {$IFNDEF DEBUG} и все заработало )
-
Brovin Yaroslav, так я и использую процедуру: procedure Log(const Fmt: string; const Params: array of const); var Msg: string; M: TMarshaller; begin {$IFNDEF DEBUG} Msg := Format(Fmt, Params); LOGI(M.AsUtf8(Msg).ToPointer); {$ENDIF} end;
-
Пытаюсь из сервиса вывести лог, но в monitor ничего не приходит. Для примера вот тестовый проект Проверьте, как у вас? PS. Из приложения лог приходит нормально
-
Все, разобрался. У меня одна и та же функция в двух местах и менял я код не там где надо было. Тему можно закрывать