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

Глюк LongTap при включенном CanSwipeDelete


Rusland

Вопрос

Если обращаться к активному элементу в ListView по LongTap, то можно нарваться на Access Violation. 

Как этого добиться: Должен быть включен CanSwipeDelete. Делаем свайп, появляется кнопка Удалить. Теперь в любом месте делаем долгий тап на любом элементе и ловим AV.

 

//на форме SpeedButton и ListView

procedure TForm1.ListView1Gesture(Sender: TObject;
  const [Ref] EventInfo: TGestureEventInfo; var Handled: Boolean);
begin
  if (EventInfo.GestureID=igiLongTap)or(EventInfo.GestureID=igiDoubleTap) then
  begin
    SpeedButton1.Text:=TListViewItem(ListView1.Selected).Text;
  end;
end;

procedure TForm1.SpeedButton1Click(Sender: TObject);
var
  Item: TListViewItem;
  I:integer;
begin
    ListViewPV.BeginUpdate;
    for I := 1 to 100 do // заполняем
    begin
      Item           := ListViewPV.Items.Add; 
      Item.ButtonText:= 'Button text';
      Item.Text      := 'Text '+IntToStr(I);
      Item.Detail    := 'Detail ';
      Item.Accessory:=TAccessoryType.More;
    end;
    ListViewPV.EndUpdate;
end;
 

 

Приходится проверять что ListView1.Selected<>nil

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

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

Ответов пока нет

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

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

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

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

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

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

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

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

×
×
  • Создать...