[R] Contrôle Edit non éditable

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
GMH
Niveau 6
Niveau 6
Messages : 227
Enregistré le : dim. 24 juin 2012 14:56
Status : Hors ligne

[R] Contrôle Edit non éditable

#1

Message 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.
Modifié en dernier par GMH le sam. 09 avr. 2016 17:36, modifié 1 fois.
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Contrôle Edit non éditable

#2

Message 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).
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
GMH
Niveau 6
Niveau 6
Messages : 227
Enregistré le : dim. 24 juin 2012 14:56
Status : Hors ligne

Re: [..] Contrôle Edit non éditable

#3

Message par GMH »

Voici la construction de l'Edit :

Code : Tout sélectionner

Global $Editeur = GUICtrlCreateEdit("", 10, 350, 1290, 300)
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
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Contrôle Edit non éditable

#4

Message 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.
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
GMH
Niveau 6
Niveau 6
Messages : 227
Enregistré le : dim. 24 juin 2012 14:56
Status : Hors ligne

Re: [..] Contrôle Edit non éditable

#5

Message 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.
mdanielm
Membre émérite
Membre émérite
Messages : 254
Enregistré le : mer. 11 déc. 2013 19:48
Status : Hors ligne

Re: [..] Contrôle Edit non éditable

#6

Message 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
Modifié en dernier par mdanielm le jeu. 14 avr. 2016 11:06, modifié 1 fois.
GMH
Niveau 6
Niveau 6
Messages : 227
Enregistré le : dim. 24 juin 2012 14:56
Status : Hors ligne

Re: [..] Contrôle Edit non éditable

#7

Message 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.
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [R] Contrôle Edit non éditable

#8

Message 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)
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
GMH
Niveau 6
Niveau 6
Messages : 227
Enregistré le : dim. 24 juin 2012 14:56
Status : Hors ligne

Re: [R] Contrôle Edit non éditable

#9

Message par GMH »

J'ai testé les 3 possibilités. Toutes trois rendent effectivement illimité le contenu de l'Edit.
Répondre