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

Lazarus Pascal Discussion :

Clavier virtuel et tactile


Sujet :

Lazarus Pascal

  1. #1
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 022
    Points : 1 049
    Points
    1 049
    Par défaut Clavier virtuel et tactile
    Bonjour à toutes et à tous,

    J'essaie de réaliser un clavier virtuel. Mais j'ai des comportements différents selon que je suis sous Windows ou Linux.

    Dans l'exemple que j'ai joint, sous Windows, lorsque je fais un appui long (> 300 mS) sur le bouton "e", un panel avec 4 boutons ayant chacun un "e" accentué apparaît.

    Si je maintiens la souris enfoncée et que je me déplace sur un de ces 4 boutons et que je relâche la souris, le caractère du bouton choisi s'affiche dans le TEdit et les 4 boutons disparaissent. Ce fonctionnement est obtenu grâce au "focus" que j'envoie au panel supportant les 4 boutons.

    Sous Linux, le déplacement de la souris maintenue enfoncée sur un des 4 boutons qui apparaissent ne fait rien. Il faut que je relâche la souris et ré-appuie dessus pour que le caractère soit pris en compte et que les 4 boutons disparaissent.

    J'aimerais avoir dans les deux environnements le comportement obtenu sous Windows.

    Avez-vous une idée de la solution ?

    Cordialement.
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Avatar de BeanzMaster
    Homme Profil pro
    Amateur Passionné
    Inscrit en
    Septembre 2015
    Messages
    1 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Amateur Passionné
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Septembre 2015
    Messages : 1 899
    Points : 4 346
    Points
    4 346
    Billets dans le blog
    2
    Par défaut
    Salut Pierre,

    Je viens tout juste de regarder ton code et voila la solution : BZ_Clav_Tact.zip directement inspiré par TOI !

    Bonne soirée

    A+

    Jérôme
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

    Mes projets sur Github - Blog - Site DVP

  3. #3
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 022
    Points : 1 049
    Points
    1 049
    Par défaut
    Bien que le comportement soit différent sous Windows ou Linux (voir ci-avant), j'ai finalisé mon clavier tactile pour l'édition d'une ligne.
    Si cela vous intéresse, si vous voulez l'utiliser ou voire le modifier, il se présente sous la forme d'un composant inclus dans un paquet. Voir les fichiers ci-joints.

    Je l'ai testé sous Windows (XP) et Linux (Ubuntu) en cliquant avec la souris sur les touches du clavier virtuel et avec mon Raspberry Pi 3B+ avec un écran tactile de 7 ".

    Cordialement.

    Pierre
    Fichiers attachés Fichiers attachés

  4. #4
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 022
    Points : 1 049
    Points
    1 049
    Par défaut
    Citation Envoyé par BeanzMaster Voir le message
    ... Je viens tout juste de regarder ton code et voila la solution : BZ_Clav_Tact.zip directement inspiré par TOI ! ...
    Salut Jérome,

    Je suis désolé, j'ai complètement zappé ta réponse qui s'est incluse 2 minutes avant la mienne.

    Je viens de la voir et de la tester sous Windows et Linux avec succès. Je t'en remercie beaucoup, Je vais essayer d'inclure cela dans ma version définitive du clavier tactile.

    Cordialement.

    Pierre

  5. #5
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 022
    Points : 1 049
    Points
    1 049
    Par défaut
    Citation Envoyé par ChPr Voir le message
    ... Je vais essayer d'inclure cela dans ma version définitive du clavier tactile. ...
    Dans mon clavier définitif, les touches supplémentaires, pour des besoins "ergonomiques", se trouvent au-dessus d'autres touches. Là, le comportement (sous Linux) ne semble plus cohérents. Parfois c'est la touche supplémentaire qui est prise en compte, d'autres fois c'est la touche qui est en-dessous selon l'endroit où on relâche la souris. Pour pallier cela, j'ai l'impression qu'il va falloir placer tout un tas de conditions qui feront que le codage va être difficilement compréhensible.

    Donc, bien que le solution semble prometteuse, pour l'instant, je me mets cela sous le coude.

    Cordialement.

    Pierre

  6. #6
    Expert confirmé
    Avatar de BeanzMaster
    Homme Profil pro
    Amateur Passionné
    Inscrit en
    Septembre 2015
    Messages
    1 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Amateur Passionné
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Septembre 2015
    Messages : 1 899
    Points : 4 346
    Points
    4 346
    Billets dans le blog
    2
    Par défaut
    Salut Pierre

    Citation Envoyé par ChPr Voir le message
    Salut Jérome,

    Je suis désolé, j'ai complètement zappé ta réponse qui s'est incluse 2 minutes avant la mienne.

    Je viens de la voir et de la tester sous Windows et Linux avec succès. Je t'en remercie beaucoup, Je vais essayer d'inclure cela dans ma version définitive du clavier tactile.

    Cordialement.

    Pierre
    Pas de soucis

    Citation Envoyé par ChPr Voir le message
    Dans mon clavier définitif, les touches supplémentaires, pour des besoins "ergonomiques", se trouvent au-dessus d'autres touches. Là, le comportement (sous Linux) ne semble plus cohérents. Parfois c'est la touche supplémentaire qui est prise en compte, d'autres fois c'est la touche qui est en-dessous selon l'endroit où on relâche la souris. Pour pallier cela, j'ai l'impression qu'il va falloir placer tout un tas de conditions qui feront que le codage va être difficilement compréhensible.

    Donc, bien que le solution semble prometteuse, pour l'instant, je me mets cela sous le coude.

    Cordialement.

    Pierre
    Bizarre normalement il ne devrait pas y avoir de soucis. Une piste vite fait, avec les panels contenant les touches supplémentaires fais attention à l'ordre des Z (clique droit dessus) passes les bien en avant plan. Si ces panels se superposent au Panel de ton composant (is sont donc créés et afficher sur la fiche et non le composant. Ce qui reviendrait à modifier dans mon exemple

    la méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    procedure TForm1.Panel2Click(Sender: TObject);
    var
      ctrl: TControl;
      i : Integer;
    begin
      if Panel2.ControlCount>0 then
        begin
          for i:= 0 to  Panel2.ControlCount-1 do
          begin
            Ctrl := Panel2.Controls[i];
            if Ctrl is TbitBtn then TbitBtn(Ctrl).Visible:= true;
          end;
        end;
    end;
    Vu que ton composant est un panel conteant d'autre panel c'est également cette méthode qui est à modifier. Ici il manquerai peut-être un niveau (en cliquant sur une touche, il faut prendre le parent cad ton composant)

    Je dois filler. Je jetterai un coup d'oeil à ton composant dès que j'aurai un peu de temps

    A+
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

    Mes projets sur Github - Blog - Site DVP

  7. #7
    Expert confirmé
    Avatar de BeanzMaster
    Homme Profil pro
    Amateur Passionné
    Inscrit en
    Septembre 2015
    Messages
    1 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Amateur Passionné
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Septembre 2015
    Messages : 1 899
    Points : 4 346
    Points
    4 346
    Billets dans le blog
    2
    Par défaut
    Salut Pierre, j'ai eu un peu de temps ce soir, j'ai modifié un peu ton composant pour qu'il suive les normes et standard de code.J'ai également corrigé quelques oublis (Le Destructeur par exemple )

    Il fonctionne aussi bien sous Windows que sous Linux
    Reste plus qu'a le peaufiner un peu, comme le Resize afin que les touches puissent être plus petites (car la le clavier est énorme plus de 1400 pixel en largeur ).
    Donner la possibilité de choisir les couleurs et les icônes des boutons. Et là il sera au top ce petit compo plus tôt pas mal du tout déja en l'état.


    Une chose a laquelle il faut faire attention c'est de paramétrer l’événement "OnCloseQuery" de la Form, car si le clavier est toujours actif l'application ne se ferme pas si tu cliques sur la croix de fermeture de la fenêtre.

    Voili voilou, testes et dis moi si cela fonctionne chez toi et sur ton Raspi

    Bonne soirée

    Jérôme
    Fichiers attachés Fichiers attachés
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

    Mes projets sur Github - Blog - Site DVP

  8. #8
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 022
    Points : 1 049
    Points
    1 049
    Par défaut
    Citation Envoyé par BeanzMaster Voir le message
    ... Voili voilou, testes et dis moi si cela fonctionne chez toi et sur ton Raspi ...
    Merci beaucoup Jérôme, c'est formidable, cela fonctionne sous Windows, Ubuntu et sur mon Raspi

    Merci aussi pour le grand nettoyage et l'ajout du Destroy.

    J'ai essayé de mettre la couleur des boutons en propriété, mais cela ne fonctionne pas. D'ailleurs, (Test sous Windows), aucun bouton ne peut voir sa couleur modifiée ??

    En ce qui concerne la largeur du clavier, ramenée à mon écran de 7", c'est tout à fait correct. Le paramétrage de cette dimension n'est apparemment pas simple, car cela implique de redimensionner tous les composants internes .. à voir.

    Cordialement.

    Pierre

  9. #9
    Expert confirmé
    Avatar de BeanzMaster
    Homme Profil pro
    Amateur Passionné
    Inscrit en
    Septembre 2015
    Messages
    1 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Amateur Passionné
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Septembre 2015
    Messages : 1 899
    Points : 4 346
    Points
    4 346
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par ChPr Voir le message
    Merci beaucoup Jérôme, c'est formidable, cela fonctionne sous Windows, Ubuntu et sur mon Raspi

    Merci aussi pour le grand nettoyage et l'ajout du Destroy.

    J'ai essayé de mettre la couleur des boutons en propriété, mais cela ne fonctionne pas. D'ailleurs, (Test sous Windows), aucun bouton ne peut voir sa couleur modifiée ??

    En ce qui concerne la largeur du clavier, ramenée à mon écran de 7", c'est tout à fait correct. Le paramétrage de cette dimension n'est apparemment pas simple, car cela implique de redimensionner tous les composants internes .. à voir.

    Cordialement.

    Pierre
    Cool tant mieux que cela fonctionne. Pour les couleurs des boutons l'astuce consisterai à utiliser des TSpeedButton avec les propriété "Flat" à True et "Transparence" à False. Pour le resize tu as déjà écris les formules (avec FLBtn et FHBtn) 3 petites boucles comme tu as fais pour initialiser les boutons, plus la possibilité de changer l'espace entre les boutons (minimum 0, maximum 8). Si l'on prend au minimum une taille de police de 10/11pt et des icônes de mini 16x16 les boutons devraient au minimum faire 18 pixel en largeur et hauteur. Suffirait juste de calculer les dimensions mini du composant pour ne pas qu'il soit en dessous de cette taille. On pourrait borner le maximum de la même façon par exemple en posant des icônes de maximum 64x64 pixels. Ensuite la taille des boutons c'est juste un ratio. En gros c'est la taille du panel - la taille du Edit (avec les marges) / 5 lignes et en x c'est la largeur-les marges / 12. pour les marges c'est 13 * largeurs séparation. donc le minimum en largeur du compo serait de (13 * largeurs séparation) + (12*18). Bref rien de bien compliqué.

    Petite question la résolution de l'écran de ton Raspi c'est combien ? 1680x1050 ? 1280*1024 ?

    Jérôme
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

    Mes projets sur Github - Blog - Site DVP

  10. #10
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 022
    Points : 1 049
    Points
    1 049
    Par défaut
    Citation Envoyé par BeanzMaster Voir le message
    ... Petite question la résolution de l'écran de ton Raspi c'est combien ? 1680x1050 ? 1280*1024 ? ...
    La définition de mon écran 7" est de 1024 x 600 pixels²

    Je vais essayer de voir pour le redimensionnement.

    Cordialement.

    Pierre

Discussions similaires

  1. [Qt WebKit] QWebView : gestion de l'interface avec un écran tactile (clavier virtuel)
    Par PROBY dans le forum Moteurs Web
    Réponses: 0
    Dernier message: 01/09/2015, 17h09
  2. [WD17] Clavier virtuel pour applications tactiles
    Par davcaz dans le forum WinDev
    Réponses: 5
    Dernier message: 01/05/2013, 12h31
  3. Lancement du clavier virtuel
    Par rzayani dans le forum Windows
    Réponses: 1
    Dernier message: 21/08/2006, 16h16
  4. Programmer un clavier virtuel
    Par juvamine dans le forum Windows
    Réponses: 1
    Dernier message: 30/07/2006, 17h47
  5. Clavier virtuel
    Par ouquoi dans le forum MFC
    Réponses: 2
    Dernier message: 22/02/2006, 11h33

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