IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants FMX Delphi Discussion :

Utilisation du TouchManager


Sujet :

Composants FMX Delphi

  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2021
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2021
    Messages : 12
    Par défaut Utilisation du TouchManager
    Bonjour,
    Je suis bloqué sur un problème qui j’espère possède une solution simple.

    En FMX je veux pouvoir appuyer à plusieurs endroits de mon écran en même temps.

    En utilisant l'événement onTouch pas de problème.

    Je peux appuyer d'abord sur une zone puis une autre en laissant mon premier appui, j'ai deux appuis simultanés.

    Mon problème est que quand j’enlève un des deux doigts , le paramètre const Touches: TTouches me renvoie les deux positions où on avait appuyé et pas seulement celle où j'ai enlevé le doigt ce qui fait que même si j'enlève un seul appui et bien il considère que sur le Up il n y a plus aucun doigt posé.

    J'ai peur que cela ressemble à un bug de Delphi car sur le Up il devrait m'envoyer que l'endroit où il y a eu le Up ou alors je comprends mal à quoi sert cet événement.

    Help pleeeasse !


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    procedure THeaderFooterForm.FormTouch(Sender: TObject; const Touches: TTouches;
      const Action: TTouchAction);
    var iterTouch:TTouch;
    begin
      if Action =  TTouchAction.Down then
      begin
        Memo1.Lines.Add('Enter touch with down event with touches count:'+IntToStr(Length(Touches)));
        for iterTouch in Touches do
        begin
          TestAllRectangles(iterTouch.Location.X,iterTouch.Location.Y,True);
        end;
      end;
      if Action =  TTouchAction.Up then
      begin
        Memo1.Lines.Add('Enter touch with up event with touches count:'+IntToStr(Length(Touches)));
        for iterTouch in Touches do
        begin
          TestAllRectangles(iterTouch.Location.X,iterTouch.Location.Y,False);
        end;
      end;
     
    end;

  2. #2
    Membre Expert
    Avatar de pprem
    Homme Profil pro
    MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Inscrit en
    Juin 2013
    Messages
    1 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 876
    Par défaut
    en fait il est censé te signaler le UP de deux doigts et déclencher un DOWN d'un seul
    (enfin, c'est comme ça que je vois les choses)

    faudra vérifier sur le docwiki quand il refonctionnera

  3. #3
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2021
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2021
    Messages : 12
    Par défaut ne fonctionne pas malheureusement
    Merci pour vos indications mais au moment du up , je n ai pas d'event down correspondant qui indiquerait qu un doigt est toujours en appui.
    Je suis sur community 10.3 je vais essayer sur 10.4 pour voir

  4. #4
    Membre Expert
    Avatar de pprem
    Homme Profil pro
    MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Inscrit en
    Juin 2013
    Messages
    1 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 876
    Par défaut
    Citation Envoyé par Thierry_74 Voir le message
    Merci pour vos indications mais au moment du up , je n ai pas d'event down correspondant qui indiquerait qu un doigt est toujours en appui.
    Je suis sur community 10.3 je vais essayer sur 10.4 pour voir
    La licence de la 10.3 est toujours active ? Elle devrait avoir dépassé les 1 an depuis longtemps, comment as-tu réussi à la conserver ?

  5. #5
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 950
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 950
    Par défaut
    J'ai regardé comment c'est fait pour Windows (FMX.Platform.Win) et force est de constater que c'est tout faux pour cet OS

    TTouches ne représente pas tous les contacts en cours mais uniquement ceux inclus dans le dernier message WM_TOUCH (les actions survenues dans un même laps de temps sont concaténées) et TTouchAction est l'événement de la dernière entrée de cette liste, les autres sont purement et simplement ignorés !

    Impossible de faire du multi-touch avec ça. Il aurait fallu appeler OnTouch sur chaque action en lui passant au minimum l'ID du contact (pour maintenir notre propre liste TDictionary<ID, TouchInfo>). Sinon comment savoir quel doigt est concerné ?

    J'avais fait un tuto (VCL) sur le sujet à l'époque.

  6. #6
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2021
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2021
    Messages : 12
    Par défaut Merci Andnotor
    Merci pour votre analyse, c'est malheureusement ce que je presentais. Ben je suis bien avec ca, je vais regarder votre tuto.
    Je peux peut etre m en sortir en mixant TouchManager et MouseUp mais ca va etre moche

  7. #7
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2021
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2021
    Messages : 12
    Par défaut Info Rio 10.3
    J'ai gardé le programme d'installation et je l ai reinstallé, il n y a eu aucun probleme.

  8. #8
    Membre Expert
    Avatar de pprem
    Homme Profil pro
    MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Inscrit en
    Juin 2013
    Messages
    1 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 876
    Par défaut
    Citation Envoyé par Thierry_74 Voir le message
    J'ai gardé le programme d'installation et je l ai reinstallé, il n y a eu aucun probleme.
    Ok, donc la licence 10.4 active aussi la 10.3, voilà qui est intéressant à savoir. (peut-être une anomalie, mais à tester pour rassurer les développeurs en fin d'accès)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 15h57
  2. Réponses: 4
    Dernier message: 05/06/2002, 14h35
  3. utilisation du meta type ANY
    Par Anonymous dans le forum CORBA
    Réponses: 1
    Dernier message: 15/04/2002, 12h36
  4. [BCB5] Utilisation des Ressources (.res)
    Par Vince78 dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/04/2002, 16h01
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo