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

Удаление маркеров TMapView N2


Rusland

Вопрос

Удаляю маркеры так:

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 содержит список маркеров. Чтобы удалились все маркеры приходится вызывать процедуру несколько раз. Что я делаю не так? 

Ссылка на комментарий

Рекомендуемые сообщения

  • 0
 
Private
  FMarkers: TList<TMapMarker>;
 
...................
 
 
Procedure AddMarker;
var 
    mapCenter: TMapCoordinate;
    MyMarker: TMapMarkerDescriptor;
Begin
  mapCenter := TMapCoordinate.Create(StrToFloat(Lat), StrToFloat(Lon));
  MyMarker := TMapMarkerDescriptor.Create(mapCenter, 'Text');
  fmain.MapView1.Location := mapCenter;
  FMarkers.Add(fmain.MapView1.AddMarker(MyMarker));
End;
 
Procedure RemoveMarker;
var 
    Marker: TMapMarker;
Begin
  for Marker in FMarkers do
    Marker.Remove;
    FMarkers.Clear;
End;
 
procedure Tfmain.FormCreate(Sender: TObject);
begin
  FMarkers := TList<TMapMarker>.Create;
End;
 
Изменено пользователем Martifan
Ссылка на комментарий
  • 0

Значит надо удалять маркеры и лишь затем очищать список. Хм... сейчас попробую  :)

 

Отлично! Работает ))

Изменено пользователем Rusland
Ссылка на комментарий
  • 0
  • Модераторы

krapotkin, не понимаю в чем принципиальное отличие TList<TMapMarker> и TObjectList<TMapMarker>?

 

FreeAndNil(List); сразу удаляет все маркеры на карте?

 

TObjectList при Free сам делает чистку своих объектов

Ссылка на комментарий
  • 0

Ясно. Дежавю прям... уже где-то обсуждалось это...

 

А бегать по маркерам тут также?

 

 

 

var List:TObjectList<TMapMarker>;
      Marker: TMapMarker;
Begin
  List:=TObjectList<TMapMarker>.Create(true);
...
 
for Marker in List do
...
Изменено пользователем Rusland
Ссылка на комментарий
  • 0
  • Модераторы

 

Ясно. Дежавю прям... уже где-то обсуждалось это...

 

А бегать по маркерам тут также?

 

 

 

var List:TObjectList<TMapMarker>;

      Marker: TMapMarker;

Begin

  List:=TObjectList<TMapMarker>.Create(true);

...

  for Marker in List do

...

 

Items есть же

Изменено пользователем ZuBy
Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...