AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung Delphi FMX : onTap vorherigen Eintrag selektiert
Thema durchsuchen
Ansicht
Themen-Optionen

FMX : onTap vorherigen Eintrag selektiert

Ein Thema von stalkingwolf · begonnen am 28. Jan 2020 · letzter Beitrag vom 31. Jan 2020
Antwort Antwort
stalkingwolf

Registriert seit: 6. Mai 2011
540 Beiträge
 
#1

FMX : onTap vorherigen Eintrag selektiert

  Alt 28. Jan 2020, 15:22
Mir ist gerade aufgefallen, das wenn man auf TListView onTap nur kurz draufdrückt in itemindex noch der letzte Eintrag enthalten ist.
D.h man muss schon etwas länger draufdrücken bis man sieht das optisch die Zeile auch markiert ist.

Ist das so gewollt oder mache ich hier in der Abfrage etwas falsch?

Code:
procedure Tfmain.lvbilderTap(Sender: TObject; const Point: TPointF);
{$IF DEFINED(ANDROID)}
var fName      : String;
   Intent     : JIntent;
   URI        : Jnet_Uri;
{$ENDIF}
begin
    // Android auf TAP reagieren
    {$IF DEFINED(ANDROID)}
    if lvbilder.Selected <> nil then begin

        fname      := lvbilder.items[lvbilder.ItemIndex].detail;
        URI        := TJnet_Uri.JavaClass.parse(StringToJString('file:///' + fName));
ich habe mir auch einmal beides ausgeben lassen (addlog ist eine Funktion von mir )
Code:
addlog(format('<%d><%d>',[lvbilder.Selected.Index,lvbilder.ItemIndex]));
und in beiden steht 0 obwohl ich die zweite Zeile angeklickt habe.

Ich öffne danach einen Bildbetrachter und wenn ich zurück zu meiner APP wechsle, ist die korrekte Zeile markiert.
D.h es gibt einen Delay zwischen onTap und dem echten markieren der Zeile.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#2

AW: FMX : onTap vorherigen Eintrag selektiert

  Alt 28. Jan 2020, 15:57
Zitat:
D.h es gibt einen Delay zwischen onTap und dem echten markieren der Zeile.
Oder OnTab wird ausgeführt bevor der Index gesetzt wird.
> Reihenfolgeproblem, nicht Zeitverzögerung, oder falsches Event benutzt

* beim Drücken wird erst das Event ausgeführt und danach der Code zum Setzen des Index (das könnte man aber als bestimmt Bug ansehen und melden, damit es in paar Jahren behoben wird)
* oder beim Draufdrücken das OnTab, aber der Index erst beim loslassen
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
stalkingwolf

Registriert seit: 6. Mai 2011
540 Beiträge
 
#3

AW: FMX : onTap vorherigen Eintrag selektiert

  Alt 28. Jan 2020, 16:59
Irgendwie habe ich auch den Eindruck es fühlt sich nicht sauber an.
z.b sind die Animationen verschieden.

Mal erscheint eine Animation für das drücken des Fingers, mal nicht.
als wäre etwas mit den Gestures nicht korrekt.

Ich hatte vorher auf LongTap eine Löschfunktion.
Diese habe ich nun auf canswipetodelete gelegt und auf LongTap auch das öffnen von dem Eintrag gelegt.
So kann ich den Anwender wenigstens sagen "halt lange Finger drauf = geht Bild auf".
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#4

AW: FMX : onTap vorherigen Eintrag selektiert

  Alt 28. Jan 2020, 17:52
Solche Inkonsistenzen gibt es überall, auch schon seit vielen vielen sehr vielen Jahren in der alten VCL, bzw. teilweise bereits im eigentlichen Control des Windows.

Teilweise reagieren Tastendrückenaktionen im KeyDown/MouseDown und wo anders im KeyUp/MouseUp.
Eigentlich reagieren Buttons auf MouseUp und nur wenn dann der Zeiger noch über dem Button liegt,
aber dann kommen die SpeedButtons und Button-Komponenten von Fremdherstellern (z.B. DevExpress) haben auch mal ihr eigenes Verhalten.
Teilweise reagieren Komponenten auch noch unterschiedlich auf "Buchstaben" oder Enter/ESC ... Eines im KeyDown und das Andere im KeyUp.
usw.


Ich hatte mal den Spaß, dass ein Fenster mit F2 auf ging und weil es "einfach" zu merken war, konnte man das Fenster mit F2 auch wieder "mit Übernahme der Default-Auswahl, egal was wohin der Nutzer schon gescrollt hat" schließen. (oder ESC und Enter mit anderer Auswahl)
Fenster auf im KeyUp (ging bisher immer problemlos) und das neue Default-Schließen aber im KeyDown (weil dort schon alle anderen Tastenaktionen dieser Form lagen),
woraufhin das Fenster sofort wieder auf ging, wenn man schnell die Defaultauswahl übernahm.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (28. Jan 2020 um 17:54 Uhr)
  Mit Zitat antworten Zitat
stalkingwolf

Registriert seit: 6. Mai 2011
540 Beiträge
 
#5

AW: FMX : onTap vorherigen Eintrag selektiert

  Alt 29. Jan 2020, 13:49
ja leider ein Problem seit vielen Jahren.

Ich habe nun in onTap mir von
Code:
const Point: TPointF
den Itemindex besorgt.
hier im Forum war auch mal ein Thread dazu. habe ich dann über die Google Suche gefunden

weil onlongTap hat teilweise auch nicht funktioniert, weil die Listview darauf gar nicht mehr reagiert hat.
D.h erster LongTap hat die Zeile markiert, die Animation ausgeführt und das Event ausgelöst onGesture
Ich öffne darin das Bild per TAndroidHelper.Activity.startActivity(). Wenn ich dann aus dem Bildbetrachter zurückkomme und die nächste Zeile anklicke, reagiert das Listview nicht. Keine Animation, kein Event, gar nichts. Ich muss erst in die APP drücken ( z.b freien Bereich ) und danach per LongTap wieder auf das Listview. Leider nicht zu 100% reproduzierbar aber in 7/10 Fällen.

Das APP wird nachher von Monteuren benutzt. Die machen die Tablets klein wenn das so funktioniert
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.094 Beiträge
 
Delphi 12 Athens
 
#6

AW: FMX : onTap vorherigen Eintrag selektiert

  Alt 29. Jan 2020, 17:33
Hast Du es mal mit OnClickEx probiert, statt OnTap ?
  Mit Zitat antworten Zitat
stalkingwolf

Registriert seit: 6. Mai 2011
540 Beiträge
 
#7

AW: FMX : onTap vorherigen Eintrag selektiert

  Alt 31. Jan 2020, 08:19
onclick hat das Problem das sofort der Eintrag ausgewählt wird und nicht mehr gescrollt werden kann.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz