Перейти к содержанию
Fire Monkey от А до Я

Rusland

Пользователи
  • Постов

    1 204
  • Зарегистрирован

  • Посещение

  • Победитель дней

    26

Весь контент Rusland

  1. Значит надо удалять маркеры и лишь затем очищать список. Хм... сейчас попробую Отлично! Работает ))
  2. Удаляю маркеры так: public FMarkers: TList<TMapMarker>; ... procedure TFormMain.ClearListPV; var Marker: TMapMarker; begin for Marker in FMarkers do begin FMarkers.Remove(Marker); Marker.Remove; end; end; FMarkers содержит список маркеров. Чтобы удалились все маркеры приходится вызывать процедуру несколько раз. Что я делаю не так?
  3. Делаю так procedure TFormMain.MapViewMarkerDoubleClick(Marker: TMapMarker); begin Marker.Descriptor.Icon.Assign(ImageListMarker.Source[0].MultiResBitmap.Items[0].Bitmap); end; ничего не происходит. Как изменить картинку маркеру при двойном клике?
  4. Rusland

    Регулярные выражения

    День добрый. Раньше пользовался TRegExpr (http://regexpstudio.com/RU/TRegExpr/TRegExpr.html) Попытался использовать его в Delphi 10 S для Android, посыпались ошибки компиляции RegExpr.pas (проблемы cо строковыми значениями). Почитал статьи/форумы, узнал что есть встроенные регулярники System.RegularExpressions.pas, но якобы плохо работает с русским языком. Как на текущий момент? Решена ли эта проблема?
  5. Еще назрел такой вопрос: Если есть несколько маркеров на карте, то как отцентрировать карту так чтобы все маркеры были видны?
  6. Да, можно конечно удалить и добавить новый, но как-то уж топорно. Неужели по другому никак? Ошибся, надо было MapView.Location или Marker.Descriptor.Position Хотя тоже не то. MapView.Location выдает центральную координаты карты - в моем случае почти всегда совпадает с координатой Маркера. Но так как это не всегда, то значит надо использовать Marker.Descriptor.Position. Но он выдает только первичные координаты маркера и не фиксирует его перемещение (drag). Как быть?
  7. Пытаюсь изменить значение Title procedure TFormMain.MapViewMarkerDragEnd(Marker: TMapMarker); begin Marker.Descriptor.Title:=MapView.Position.ToString; end; Не компилируется, выдает E2064 Left side cannot be assigned to Почему так?
  8. Во! Похоже то что мне нужно! Это события самого TMapMarker? Почему я их не вижу? Как например вызвать свою процедуру в OnMarkerClick? Дошло... это события MapView. Ушел разбираться дальше. krapotkin, спасибо. Сразу родился еще один вопрос: если есть несколько маркеров на карте, то как их различать между собой? Есть ли у MapMarker какой-то скрытый параметр типа Tag (куда прописывать уникальный номер)?
  9. Неужели никто не знает?
  10. Нашел решение второго вопроса: есть свойство Snippet куда можно вбивать текст Осталось решить первый - как в Title загнать координаты? Менять заголовок либо при изменении положения маркера, либо во время нажатия на маркер. Не знаю как отследить ни то, ни это. Может кто подсказать?
  11. Rusland

    Работа с маркерами

    Создаю маркер так procedure TFormMain.SetMarker(Lat,Lon:Double); var Descrip: TMapMarkerDescriptor; MyLocation: TMapCoordinate; Angle:integer; begin TThread.Queue(nil, procedure begin try if (TabControl.ActiveTab=TabMap)and((PrevLat<>Lat) or (PrevLon<>Lon)) then begin MyLocation:=TMapCoordinate.Create(Lat,Lon); MapView.Location:=MyLocation; Descrip:=TMapMarkerDescriptor.Create(MyLocation); Descrip.Icon := Image1.Bitmap; Descrip.Draggable:=True; Descrip.Title:='Маркер '+#10+#13+Descrip.Position.ToString; if Assigned(MyMarker) then MyMarker.Remove; MyMarker:=MapView.AddMarker(Descrip); PrevLat:=Lat; PrevLon:=Lon; end; except LabInfo.Text:='Произошла ошибка'; end; end); end; Маркер я сделал Draggable, то есть его можно переносить сделав на нем долгий Tap. Можно ли навесить какую-то свою функцию на изменение положения маркера? Я хочу при изменении положения маркера менять ему в Title его координаты. И еще интересует как сделать Title в две строки? #10+#13 почему-то не делает переноса.
  12. С 10 версии появилась кнопка центрирования карты по текущему местоположению. Можно ли ею как-то управлять? Нужно чтобы при нажатии на эту кнопку выставлялся Zoom нужный мне?
  13. Чтобы приложение держало экран всегда включенным я добавил в dpr следующий код: uses ... {$IF DEFINED(ANDROID)} Androidapi.Helpers, Androidapi.JNI.GraphicsContentViewText, {$ENDIF } ... {$R *.res} begin Application.Initialize; {$IF DEFINED(ANDROID)} SharedActivity.getWindow.addFlags(TJWindowManager_LayoutParams.JavaClass.FLAG_KEEP_SCREEN_ON); {$ENDIF} Так вот в какой-то момент после нескольких компиляций строка Androidapi.JNI.GraphicsContentViewText просто исчезает. И проект не компилируется. Приходится снова ее добавлять. В чем может быть дело?
  14. Да, Android. Как всегда ответ четко по теме, спасибо. Не хочется нарушать рекомендации Google Однако это на мой взгляд большая проблема... некоторые компоненты не увеличить (типа кнопок), а некоторые не уменьшить... Например, на форме где есть TMapView очень трудно что либо еще уместить. Эх, придется как-то подстраивать дизайн
  15. Rusland

    ListView.SearchVisible

    Из этой темы попробовал сделать так: function FindSearchBox(const ARootControl: TControl): TSearchBox; var Child: TControl; begin Result := nil; for Child in ARootControl.Controls do if Child is TSearchBox then Exit(TSearchBox(Child)); end; procedure TFormAdd.SpeedButton1Click(Sender: TObject); var SearchBox: TSearchBox; begin SearchBox:=FindSearchBox(FormMain.ListView1); if SearchBox <> nil then begin SearchBox.Text:=''; end; end; Метод работает.
  16. Rusland

    ListView.SearchVisible

    Делаю Набираю текст в появившейся панели поиска, список фильтруется. Как теперь из другой формы отключить фильтр? ListView.SearchVisible:=false прячет панель, но не отменяет фильтрации.
  17. Можно ли изменить размер Switch? Слишком уж он маленький и приходится несколько раз на нем тыкать чтобы попасть по нему.
  18. Странно, клавиатуру скрыл, а Access Violation все равно выскакивает PS. Заменил Release формы на Free и ошибка ушла...
  19. Rusland

    Как закрыть клавиатуру

    Две формы, первая - главная, вторая - модальная, которая создается так TFormAdd.Create(self). На второй есть Edit-ы, кнопка Возврата SpeedButton1 (ModalResult=mrCancel) и она вызывается методом ShowModal. Когда я захожу, например в редактирование Edit1 второй формы, появляется клавиатура. Если в этот момент нажать SpeedButton1, то форма закрывается, а клавиатура остается висеть. Если после этого снова вызвать (создать) вторую форму и нажать на Edit1, то получаю вечный Access Violation. Вопрос: как убирать клавиатуру при закрытии формы?
  20. Rusland

    ListBox, Edit и клавиатура

    На ListBox-e несколько Item-ов, на них поставил Edit-ы. Когда я пытаюсь редактировать нижние Edit-ы, то клавиатура перекрывает их и не видно что набираешь (в моем примере это Номер дома). Как это исправить? И как сделать чтобы на клавиатуре вместо кнопки Enter была кнопка Готово, по нажатию на которую клава бы скрывалась?
  21. Осталось только понять: Стрелочка ">" - это кнопка или что? Можно ли на нее нажать отдельно от всего Item-a?
  22. Что-то я стормозил... действительно же нужный Item уже будет Selected. Я вот так обращаюсь: TListViewItem(ListViewPV.Selected).Text
  23. Посмотрел вот тут пример http://docwiki.embarcadero.com/CodeExamples/Seattle/en/OnGesture_(Delphi) Компонент GestureManager обязателен? uses FMX.Gestures; { ... } procedure TFormMain.ListViewPVGesture(Sender: TObject; const [Ref] EventInfo: TGestureEventInfo; var Handled: Boolean); var S: String; begin if GestureToIdent(EventInfo.GestureID, S) then ShowMessage(S) else ShowMessage('Could not translate gesture identifier'); end; При долгом нажатии получаю "Could not translate gesture identifier". Почему? Процедура то вызывается... выходит что долгий Тап отрабатывается. А как понять какой Item вызвал процедуру? PS. В Touch -> InteractiveGestures -> LongTap выставлено True.
  24. Rusland

    Возможности ListView

    Можно ли ListView представить подобным образом (см. картинку)? Особенно интересует отображение текста (в трех местах).
  25. Нужно при долгом нажатии на элементе вызывать форму. Как сделать? И как обработать нажатие кнопочек ">"?
×
×
  • Создать...