![]() |
Listview mit on Click und LongTap
Hi,
ich schlage mich jetzt schon seit einiger zeit mit der Listview herum und bekomme einen, meiner auffassung nach, selbstverständlichen use case nicht abgebildet. Es geht bei der Entwicklung ausschließlich um Mobile also android oder iOS Ich möchte in der Listview sowohl mit einem einfachen tab auf das Item eine aktion ausführen (Öffnen des Datensatzes in neuer Form) sowie auch durch gedrückt halten, die Listview in den Editmodus umschalten. Beides getrennt, kein Problem, beides Zusammen bekomme ich einfach nicht hin. Die beiden aktionen kommen sich immer gegenseitig in die Quere. Hat das schon jemand von euch implementieren können? Viele Güße PJM |
AW: Listview mit on Click und LongTap
So vielleicht?
Delphi-Quellcode:
procedure TForm1.ListViewMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single);
begin if Button = TMouseButton.mbRight then //LongPress else //Tap/Click; end; |
AW: Listview mit on Click und LongTap
Zitat:
Delphi-Quellcode:
das für das Abfragen von allen möglichen Gesten zuständig ist. Da kann ich auch ein
OnGesture
Delphi-Quellcode:
abfragen.
EventInfo.GestureID = igiLongTap
Funktioniert genau so lange gut, bis ich das
Delphi-Quellcode:
definiere. Das greift schon beim Tap und nicht erst beim Tap Ende und sperrt mir somit die
OnItemClickEx
Delphi-Quellcode:
Abfrage.
EventInfo.GestureID = igiLongTap
|
AW: Listview mit on Click und LongTap
Die Gesten etc. musst du natürlich rausnehmen für meinen Ansatz, falls nicht geschehen.
Ein long tap auf einem Touchscreen kommt dann im Programm immer als Rechtsclick an... |
AW: Listview mit on Click und LongTap
Test es gerade mit Delphi 11.3 alle anderen Events sind von der Listview entfernt.
Folgender Code liegt auf MousUp
Delphi-Quellcode:
Ich bekomme ausschließlich das "Click" nie "Long".
procedure TForm1.ListViewOverviewMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single);
begin if Button = TMouseButton.mbRight then showmessage('Long') // LongPress else showmessage('Click'); end; |
AW: Listview mit on Click und LongTap
Hilft dir dieser
![]() |
AW: Listview mit on Click und LongTap
Zitat:
!OffTopic! PressAndTap ist die unnötigste Geste von der ich jemals gehört habe. Nicht nur das ich das noch nie gesehen habe, mir fällt auch kein auch noch so konstruiertes Beispiel ein an dem die Geste hilfrecih wäre. |
AW: Listview mit on Click und LongTap
Oder war das mit dem right click nur unter Windows? :gruebel:
|
AW: Listview mit on Click und LongTap
Zitat:
Genauso könnte z.B. auch ein Zwei- oder Drei-Finger-Tipper als Rechtsklick (ContextMenü) interpretiert werden. |
AW: Listview mit on Click und LongTap
Ich habe da auch viel rumexperimentiert und verschiedene Ansätze dafür.
Mittlerweile mache ich das mit einem FTDateTimeStart := Now; im Mousedown und mit MillisecondsBetween( Now, FTDateTimeStart ) > 2000 then Im MouseUp. Sorry, bin nicht am PC, kannst nicht schöner schreiben. Das Problem kann sein dass ein LongTap auch immer ein OnClick auslöst, Das kam man damit entsprechend verhindern. Der Nachteil ist, dass ein Event erst bei MouseUp ausgelöst wird. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:51 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz