orditosh
Messages postés46Date d'inscriptiondimanche 10 avril 2005StatutMembreDernière intervention25 janvier 2007
-
23 janv. 2007 à 18:29
orditosh
Messages postés46Date d'inscriptiondimanche 10 avril 2005StatutMembreDernière intervention25 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 !
Dolphin Boy
Messages postés630Date d'inscriptionvendredi 5 mai 2006StatutMembreDernière intervention17 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
Dolphin Boy
Messages postés630Date d'inscriptionvendredi 5 mai 2006StatutMembreDernière intervention17 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
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 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)
Vous n’avez pas trouvé la réponse que vous recherchez ?
orditosh
Messages postés46Date d'inscriptiondimanche 10 avril 2005StatutMembreDernière intervention25 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
Dolphin Boy
Messages postés630Date d'inscriptionvendredi 5 mai 2006StatutMembreDernière intervention17 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
orditosh
Messages postés46Date d'inscriptiondimanche 10 avril 2005StatutMembreDernière intervention25 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
Dolphin Boy
Messages postés630Date d'inscriptionvendredi 5 mai 2006StatutMembreDernière intervention17 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).
orditosh
Messages postés46Date d'inscriptiondimanche 10 avril 2005StatutMembreDernière intervention25 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 ...
orditosh
Messages postés46Date d'inscriptiondimanche 10 avril 2005StatutMembreDernière intervention25 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
orditosh
Messages postés46Date d'inscriptiondimanche 10 avril 2005StatutMembreDernière intervention25 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 !
orditosh
Messages postés46Date d'inscriptiondimanche 10 avril 2005StatutMembreDernière intervention25 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 ???
orditosh
Messages postés46Date d'inscriptiondimanche 10 avril 2005StatutMembreDernière intervention25 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 ...