[Résolu] [Basic]Saisie TextField non reconnue

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
Avatar de l’utilisateur
Phem
Fraîchement OOthentifié
Messages : 7
Inscription : 16 mars 2018 00:40

[Résolu] [Basic]Saisie TextField non reconnue

Message par Phem »

Salut la foule : )
La modération vous a écrit: Merci de lire et d'appliquer les règles du Forum https://forum.openoffice.org/fr/forum/f ... html#p7493
Le balisage est obligatoire dans cette section.
Cordialement

Tout d'abord je précise que je démarre à peine oBasic et que je ne suis pas encore très à l'aise avec la programmation full objets et ses conventions.

J'ai un problème que je ne parviens pas à comprendre et donc pas à résoudre. J'aimerais pouvoir récupérer des données saisies par l'utilisateur dans le TextField ("COL1") d'une boite de dialogue ("Dialog1").
Pour tester mon code j'utilise une sortie msgbox qui s'affiche quand je clique sur le bouton de la boite de dialogue.

Pour aller au bout du test j'ai saisie "Txt Natif" directement dans la propriété Texte du TextFiedl

Voici ce qui se produit :

- Peu importe comment l'utilisateur modifie le contenu de du TextField au clic le résultat sera toujours "Txt Natif"
- Si je modifie le texte par un code au moment du click : TextField.text = "Click" , l'utilisateur ne constate aucun changement au niveau du TextField mais à partir de là le résultat sera toujours "Click"

En gros la saisie de l'utilisateur est parfaitement ignorée.

Est-ce que par hasard quelqu'un comprendrait ce qui se passe ... pas ? ^^

Code : Tout sélectionner

	dim LIBR as object, BTE as object, UD as object, CTRL as object ,VC1 as variant
	
	LIBR = DialogLibraries.GetByName("OOG")
	BTE = LIBR.GetByName("Dialog1")
	UD = CreateUnoDialog(BTE)
	CTRL = UD.GetControl("COL1")
	'CTRL.text = "Click !"
	VC1 = CTRL.Text	
	msgbox VC1
Dernière modification par micmac le 18 mars 2018 11:21, modifié 2 fois.
Raison : Ajout de [Résolu]
LibreOffice 5.4.5.1 (x64) / Win10 migr?? de Win7
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 18:07
Localisation : Guyane

Re: [Basic]Saisie TextField non reconnue

Message par Piaf »

Bonjour
A tester
A+
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
Avatar de l’utilisateur
Phem
Fraîchement OOthentifié
Messages : 7
Inscription : 16 mars 2018 00:40

Re: [Basic]Saisie TextField non reconnue

Message par Phem »

Merci Piaf pour ton code !

J'ai pu le transposer pour mon cas.
J'aurais aimé éviter l'emploi d'un bouton de type OK car le but était aussi de garder la boite de dialogue ouverte pour pouvoir enchainer les entrées.

Encore merci à ++ : )
LibreOffice 5.4.5.1 (x64) / Win10 migr?? de Win7
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 18:07
Localisation : Guyane

Re: [Basic]Saisie TextField non reconnue

Message par Piaf »

Re
Phem a écrit :J'aurais aimé éviter l'emploi d'un bouton de type OK car le but était aussi de garder la boite de dialogue ouverte pour pouvoir enchainer les entrées.
Sur la perte du focus du contrôle de texte.
Dialog.png
A+
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
Avatar de l’utilisateur
Phem
Fraîchement OOthentifié
Messages : 7
Inscription : 16 mars 2018 00:40

Re: [Basic]Saisie TextField non reconnue

Message par Phem »

Re : )

Désolé pour le temps de réponse gros souci d'internet en ce moment .

Merci Piaf pour ton nouvel envoi. Chez moi la dialog box se ferme qd même.

De mon côté j'ai résolu le problème en relançant le Sub directement dans ton case 1 (j'adore les solutions de feignant :wink: )

Code : Tout sélectionner

 Dim oDlg As Object
Sub Dialogue
	DialogLibraries.LoadLibrary("Standard")
	oDlg = CreateUnoDialog(DialogLibraries.Standard.Dialog1)
	Select Case oDlg.Execute() 
		Case 1
			MsgBox "Vous avez appuyé sur le bouton OK"
			Dialogue
		Case 0 
			MsgBox "Vous avez appuyé sur le bouton Annuler"
	End Select
End Sub
Encore merci pour ton interêt : )

A++
LibreOffice 5.4.5.1 (x64) / Win10 migr?? de Win7
Avatar de l’utilisateur
micmac
RespOOnsable forum
RespOOnsable forum
Messages : 9252
Inscription : 28 août 2010 08:45

Re: [Basic]Saisie TextField non reconnue

Message par micmac »

Touche Ctrl de Windows = touche cmd⌘ sur Mac
Outils > Options sur Windows = OpenOffice > Préférences sur Mac
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 18:07
Localisation : Guyane

Re: [Basic]Saisie TextField non reconnue

Message par Piaf »

Bonjour
Phem a écrit :Chez moi la dialog box se ferme qd même.
A priori, il ne peut se fermer que si tu appuies sur un des boutons, le message apparaît à la perte du focus du contrôle, après la mise à jour du contrôle appuie sur la touche TAB sans cliquer sur un bouton.
A+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64