Des touches virtuelles

Résolu
orditosh Messages postés 46 Date d'inscription dimanche 10 avril 2005 Statut Membre Dernière intervention 25 janvier 2007 - 23 janv. 2007 à 18:29
orditosh Messages postés 46 Date d'inscription dimanche 10 avril 2005 Statut Membre Dernière intervention 25 janvier 2007 - 25 janv. 2007 à 18:14
Bonjour, j'ai déjà chercher de partout, sans trouver ce que je veux faire ...
Je veux faire un programme pour un support avec écran tactile, ce programme est une sorte de calculette mais, ca n'en est pas une, il y a en tout 3 champs.
Je voudrai que, par exemple, je clique sur le champs 2, je clique sur les boutons correspondants au chiffre "3 ; 8 ; 2" et, dans ce champs, il apparait "382" ensuite, je rempli de la meme manière le champs 1 et 3 pour enfin valider.
je ne sais pas comment faire, merci de m'aider !

16 réponses

Dolphin Boy Messages postés 630 Date d'inscription vendredi 5 mai 2006 Statut Membre Dernière intervention 17 février 2007
24 janv. 2007 à 18:59
Désolé pour le retard.
Si tu préfères cette solution alors :

Private Sub Command1_Click()If (MonChamp) "L" Then L.Text L.Text  & "1"If (MonChamp) "M" Then M.Text M.Text  & "1"If (MonChamp) "E" Then E.Text E.Text  & "1"
End Sub

Private Sub Command2_Click()If (MonChamp) "L" Then L.Text L.Text  & "2"If (MonChamp) "M" Then M.Text M.Text  & "2"If (MonChamp) "E" Then E.Text E.Text  & "2"
End Sub

etc...
3
Dolphin Boy Messages postés 630 Date d'inscription vendredi 5 mai 2006 Statut Membre Dernière intervention 17 février 2007
24 janv. 2007 à 19:47
If (MonChamp) = "L" Then L.Text = Left$(L.Text, Len(L.Text) - 1)If (MonChamp) "M" Then M.Text Left$(M.Text, Len(M.Text) - 1)If (MonChamp) "E" Then E.Text Left$(E.Text, Len(E.Text) - 1)

Je te laisse voir dans la MSDN la signification de Left$ et de Len.

@++
3
Dolphin Boy Messages postés 630 Date d'inscription vendredi 5 mai 2006 Statut Membre Dernière intervention 17 février 2007
23 janv. 2007 à 19:12
Salut,
Sans plus de précision, je dirais :
-click sur champ --> mémorisation du nom du champ (textbox ?, label ?, ...) : MonChamp = NomDuChamp
-click sur les boutons : Maform.Controls(MonChamp) = Maform.Controls(MonChamp) & ValeurBouton
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
23 janv. 2007 à 19:13
Salut
Je suppose que ce que tu appelles "champ" sont des boutons (button) et des zones de texte (TextBox) ?
Alors, commence par placer autant de Button et de TextBox qu'il te faut, nomme-les proprement (à la place de Command1 généré par défaut) puis, en mode création toujours, double-clique sur ton bouton.
Tu arriveras dans la page de code qui s'exécutera lorsque l'utilisateur cliquera sur ce bouton.
Tu n'as plus qu'à faire le transfert du chiffre "1" vers ta TextBox :
maTextBox.Text = maTextBox.Text & "1"
Idem pour chaque bouton ...
Tu noteras le & (cahine) et pas le + (numérique) car sinon tu risques de faire le calcul (addition) au lieu d'ajouter un caractère à ta chaine.

Inspire toi des milliers d'exemples de calculettes présents sur ce site, c'est exactement la même chose !

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Champion du monde de boule de cristal - 2005
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
orditosh Messages postés 46 Date d'inscription dimanche 10 avril 2005 Statut Membre Dernière intervention 25 janvier 2007
23 janv. 2007 à 19:19
merci jack pour ta réponse plus précise que celle de Dolphin boy
mais, en faisant ta technique, les boutons 1,2,3,9,... seront adaptées à 1 seul champ ( cleui nommée ) alors que, je voudrais que, je sélectionne un champ ( textbox ) encliquant dessus ( écran tactile ) et, que je clique sur les boutons 1;2;3, ...
je pense que si j'utilisais les "if" sa donnerait quelque chose ( j'ai vu sa dans un exemple de clavier virtuelle ) du style : si le champs "nom de champ" est sélectionée, alors quand on appui sur les boutons "1,2,3,4,5,6,7,8,9,0" sa écrit dans le bon champs
0
Dolphin Boy Messages postés 630 Date d'inscription vendredi 5 mai 2006 Statut Membre Dernière intervention 17 février 2007
23 janv. 2007 à 19:40
Désolé si ma réponse parait peu précise mais je n'ai voulu montrer que le principe.
Si tu veux du code :
Mémorisation du champ (mettons un label ?)
Une variable public dans un module
Public MonChamp As String
Ce code dans le click
Private Sub Label1_Click()
  MonChamp = "Label1"
End Sub
Des boutons (de préférence un collection) ayant pour caption de "0" à "9" et dans leur click :
Private Sub Command1_Click(Index As Integer)
  If MonChamp <> "" Then
    Me.Controls(MonChamp).Caption = Me.Controls(MonChamp).Caption & Command1.Caption
  End If
End Sub

Je ne vois pas comment être plus précis.
0
Dolphin Boy Messages postés 630 Date d'inscription vendredi 5 mai 2006 Statut Membre Dernière intervention 17 février 2007
23 janv. 2007 à 19:43
Ah si, le code dans label1_click, il faut l'adapter à chaque label (si ce sont des labels).
0
orditosh Messages postés 46 Date d'inscription dimanche 10 avril 2005 Statut Membre Dernière intervention 25 janvier 2007
23 janv. 2007 à 19:56
merci, il y a juste un problème avec le (Index As Integer)  il me dit lorsque je veux tester : La déclaration de la procédure ne correspond pas à la description de l'evennement ou de la procédure de meme nom

pourtant, je pense que j'ai tout bien modifier !
0
Dolphin Boy Messages postés 630 Date d'inscription vendredi 5 mai 2006 Statut Membre Dernière intervention 17 février 2007
23 janv. 2007 à 22:54
Mille excuses, si tu as un groupe de contrôles (collection), effectivement il faut coder :

Private Sub Command1_Click(Index As Integer)
  If MonChamp <> "" Then
    Me.Controls(MonChamp).Caption = Me.Controls(MonChamp).Caption & Command1(Index).Caption
  End If
End Sub

Sinon, il te faut coder dans le 1er bouton :
Private Sub Command1_Click()
  If MonChamp <> "" Then
    Me.Controls(MonChamp).Caption = Me.Controls(MonChamp).Caption & Command1.Caption
  End If
End Sub
Puis dans le 2ème :
Private Sub Command2_Click()
  If MonChamp <> "" Then
    Me.Controls(MonChamp).Caption = Me.Controls(MonChamp).Caption & Command2.Caption
  End If
End Sub
etc...

Bien évidemment, comme tu l'auras compris, le groupe de contrôle, permet d'éviter la répétition des mêmes lignes de code.

Il y a 2 manières de créer un groupe de contrôles :
1 - poser un contrôle sur ta feuille (formulaire) puis le copier/coller dans la même feuille(formulaire) en répondant Oui à la question "voulez-vous créer un groupe de contrôle" lors du 1er copier/coller, ensuite c'est automatique.
2 - mettre 0 dans la propriété index du 1er contrôle puis renommer tous les autres avec le même nom que le 1er et lui donner une valeur d'index incrémentée.
La 1ère manière est à mon sens la moins contraignante.

A charge pour toi de modifier la propriété caption de chacun de tes contrôles.

Si mes explications ne te semblent pas claires, n'hésite pas à demander des précisions (j'ai un peu trop tendance à penser que ce que j'ai compris tout le monde peut le comprendre).
0
orditosh Messages postés 46 Date d'inscription dimanche 10 avril 2005 Statut Membre Dernière intervention 25 janvier 2007
24 janv. 2007 à 12:58
qu'est ce qu'un "contrôle" ? ( le nom d'objet )
0
orditosh Messages postés 46 Date d'inscription dimanche 10 avril 2005 Statut Membre Dernière intervention 25 janvier 2007
24 janv. 2007 à 13:31
j'ai trouve rle controle ( OLE ) je l'ai placer, j'en ai 3
ensuite, dans le bouton qui doit afficher le chiffre 1, j'y ai mis ce code :

Private Sub Command1_Click()
  If MonChamp <> "" Then
    Me.Controls(MonChamp).Caption = Me.Controls(MonChamp).Caption & command1.Caption
  End If
End Sub

dans le bouton 2, le meme en rempalcant Command1 par Command2
et, sa ne amrche pas ...
si tu pouvais peut etre faire le fichier pour que je puisse regarder ce code ...
0
orditosh Messages postés 46 Date d'inscription dimanche 10 avril 2005 Statut Membre Dernière intervention 25 janvier 2007
24 janv. 2007 à 16:03
ah, je viens de voir que mon    appareil ne prend pas en charge les OLE ( mon palm ) j'ai tous les boutons en "bis" pour palm mais, pas le bouton OLE donc, je ne peux pas
par contre, je peux utiliser le "TextBox" qui doit se remplir en appuyant sur les chiffres
0
orditosh Messages postés 46 Date d'inscription dimanche 10 avril 2005 Statut Membre Dernière intervention 25 janvier 2007
24 janv. 2007 à 17:02
slt !
j'ai réfléchit un peu au problème et, j'ai toruvé une solution qui devrait marcher mais, je ne sais pas comment la mettre en place :
il faudrait que au lancement de l'appli, une variable "MonChamp" se crée
Quand on appui sur le 1 er TextBox, la variable "MonChamp" change de nom et se transforme par exemple en "ChampL" et, quand on clique sur le bouton avec la caption "1", on met que si la variable se nomme "ChampL", on l'écrit dans le 1er, si elle se nomme ChampM, elle s'écrit dans le 2eme TextBox et, si elle se nomme ChampE, elle s'écrit dans le 3eme Textbox !
0
orditosh Messages postés 46 Date d'inscription dimanche 10 avril 2005 Statut Membre Dernière intervention 25 janvier 2007
24 janv. 2007 à 18:46
slt !
c'est bon, j'ai trouver
en rajoutant dans chaques "TextBox" click : 1) MonChamp = L
2) MonChamp = M
3) MonChamp = E

et, dans chaques boutons :

Private Sub Command1_Click()
If (MonChamp) "L" Then L.Text "1"
If (MonChamp) "M" Then M.Text "1"
If (MonChamp) "E" Then E.Text "1"

End Sub


Mais, quand je passe au 2, je remplace le "1" par "2" mais, au lieu d'écrire a la suite "12" sa écrit juste "2" comment faire pour que les chiffres se suivent ???
0
orditosh Messages postés 46 Date d'inscription dimanche 10 avril 2005 Statut Membre Dernière intervention 25 janvier 2007
24 janv. 2007 à 19:07
merci, sa marche et, juste un dernier détail, comment faire effacer le dernier chiffre uniquement du rang sélectionné ?
Private Sub del_Click()
If(MonChamp) = "L" Then ...
If(MonChamp) = "M" Then ...
If(MonChamp) = "E" Then ...
0
orditosh Messages postés 46 Date d'inscription dimanche 10 avril 2005 Statut Membre Dernière intervention 25 janvier 2007
25 janv. 2007 à 18:14
merci beaucoup !
0
Rejoignez-nous