Поиск сообщества
Показаны результаты для тегов 'longtap'.
Найдено: 2 результата
-
У ListBoxItem нужно реализовать вызов контекстного меню. На ListBoxItem лежит ImagesViwer с картинкой и у ImagesViwer свойство HitTest отключено. почитал справку http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Gestures_in_FireMonkey сделал как описано: procedure TfmEditObject.AddPhoto(Image: TBitmap); Var item: TListBoxItem; imageV: TImageViewer; begin item := TListBoxItem.Create(lbPhotos); item.parent := lbPhotos; item.text := ''; item.Width := lbPhotos.Width; item.Touch.GestureManager := GestureManager1; item.Touch.InteractiveGestures := [TInteractiveGesture.LongTap, TInteractiveGesture.DoubleTap]; item.OnGesture := ListBoxItemGesture; imageV := TImageViewer.Create(lbPhotos); imageV.HitTest := False; imageV.Parent := item; imageV.Align := TAlignLayout.Client; imageV.Bitmap.Assign(image); item.SetFocus; end; procedure TfmEditObject.ListBoxItemGesture(Sender: TObject; const EventInfo: TGestureEventInfo; var Handled: Boolean); Var s: string; begin if GestureToIdent(EventInfo.GestureID, s) then ShowMessage( S ); if EventInfo.GestureID = igiLongTap then ShowMessage( Sender.ClassName ); Handled := True; end; Ничего не происходит. На на андроид устройстве, ни на винде. И правильно ли я понял, что для LongTap, т.е. для InteractiveGestures не нужен GestureManager?
- 4 ответа
-
- ongesture
- listboxitem
-
(и ещё 1 )
C тегом:
-
Если обращаться к активному элементу в 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