Page 1 sur 1
[R] Contrôle Edit non éditable
Posté : ven. 08 avr. 2016 20:04
par GMH
Bonjour,
A l'aide de la boucle suivante, je récupère dans la variable
$Affichage des données présentes dans un fichier texte (variable
$monFichierTxt ).
Tout se passe bien, l'Edit affiche toutes les données contenues dans la variable
$Affichage.
Mais impossible ensuite de modifier l'affichage : je ne peux rien ajouter non plus, quoique je n'utilise pas le style
$ES_READONLY dans ma fonction de création de l'Edit.
Quelle peut être la cause de ce problème ?
Code : Tout sélectionner
$Affichage = ""
While 1
Local $Ligne = FileReadLine($monFichierTxt)
If @Error = -1 Then ExitLoop
Local $LigneSplit = StringSplit($Ligne,";")
$Affichage = $Affichage & "NOM : " & $LigneSplit[1] & @CRLF
$Affichage = $Affichage & "PRENOM : " & $LigneSplit[2] & @CRLF
$Affichage = $Affichage & "NAISSANCE : " & $LigneSplit[3] & @CRLF
WEnd
FileClose($monFichierTxt)
GUICtrlSetData($Editeur, $Affichage)
Je vous remercie.
Re: [..] Contrôle Edit non éditable
Posté : ven. 08 avr. 2016 20:46
par orax
Cette partie du code ne nous permet pas de voir l'origine du problème.
À mon avis, il faudrait voir la partie où les contrôles sont créés (en particulier l'Edit).
Re: [..] Contrôle Edit non éditable
Posté : ven. 08 avr. 2016 20:56
par GMH
Voici la construction de l'Edit :
Afin de soigner la présentation, j'aimerais que tous les "deux-points" soient alignés à l'affichage dans l'Edit. Lorsque je complète le premier mot de chaque ligne par des espaces, ceux-ci se réduisent à 1 seul à l'affichage.
Y a-t-il moyen de conserver ces espaces ?
Merci à vous
Re: [..] Contrôle Edit non éditable
Posté : sam. 09 avr. 2016 00:06
par orax
Pour ça il faut utiliser une police à chasse fixe. Courier, Consolas, ... =>
https://fr.wikipedia.org/wiki/Chasse_(typographie)
Code : Tout sélectionner
#include <FontConstants.au3>
$Affichage = ""
$Affichage = $Affichage & "NOM : " & @CRLF
$Affichage = $Affichage & "PRENOM : " & @CRLF
$Affichage = $Affichage & "NAISSANCE : " & @CRLF
$Editeur = GUICtrlCreateEdit("", 10, 350, 1290, 300)
GUICtrlSetFont(-1, 15, $FW_NORMAL, $GUI_FONTUNDER, "Courier New")
Pour le problème de l'Edit non éditable, je ne sais pas, je n'ai pas de réponse.
Re: [..] Contrôle Edit non éditable
Posté : sam. 09 avr. 2016 10:33
par GMH
La police à chasse fixe permet en effet de conserver les espaces. Merci !
Je crois avoir trouvé la raison de ce dysfonctionnement : Les données à afficher sont trop nombreuses pour l'Edit qui limite le nombre de caractères à afficher.
J'ai testé avec une boucle plus courte, et l'Edit devient éditable.
Je cherche une solution pour traiter le fichier en le découpant. A moins que rendre l'Edit illimité soit possible.
Re: [..] Contrôle Edit non éditable
Posté : sam. 09 avr. 2016 17:26
par mdanielm
Bonjour,
J'ai déjà eu ce problème plusieurs fois.
La fonction _GUICtrlEdit_SetLimitText() est faite pour augmenter la taille du texte saisi mais j'ai pu vérifier qu'elle ne fonctionne pas.
Si vous confirmez, mes soupçons se confirment!
Cordialement
Re: [..] Contrôle Edit non éditable
Posté : sam. 09 avr. 2016 17:35
par GMH
Bonjour et merci pour cette fonction.
Chez moi, elle fonctionne :
Code : Tout sélectionner
Global $Editeur = GUICtrlCreateEdit("", 10, 350, 1290, 300)
_GUICtrlEdit_SetLimitText($Editeur, 10000000)
Voilà que tout se résout en rien de temps ! Merci encore.
Re: [R] Contrôle Edit non éditable
Posté : sam. 09 avr. 2016 18:35
par orax
On pourrait mettre
0 pour définir la valeur maximale.
Et logiquement, les écritures suivantes sont équivalentes, si j'ai bien interprété ce qui est écrit sur
EM_SETLIMITTEXT message.
Code : Tout sélectionner
_GUICtrlEdit_SetLimitText($Editeur, 0)
_GUICtrlEdit_SetLimitText($Editeur, -1)
_GUICtrlEdit_SetLimitText($Editeur, 0xFFFFFFFF)
Re: [R] Contrôle Edit non éditable
Posté : dim. 10 avr. 2016 09:17
par GMH
J'ai testé les 3 possibilités. Toutes trois rendent effectivement illimité le contenu de l'Edit.