Page 1 sur 1

[R] Edit Illimité

Posté : mer. 09 sept. 2009 12:40
par TommyDDR
Bonjour,

Par défaut, un Edit peut contenir un nombre limité de caractères.

J'aimerai savoir s'il était possible de changer cette limite (La mettre illimité si possible).

Merci.

Edit : Je viens de tester le nombre max de caractères, il est de 30 008

Re: [..] Edit Illimité

Posté : mer. 09 sept. 2009 13:34
par kay69
J'en suis a 55 000 caractères et toujours pas de limite en vue :O, avec le script suivant :

Code : Tout sélectionner

GUICreate("", 200, 200)
$edit=GUICtrlCreateEdit("", 0, 0, 200, 200)
GUISetState()
While 1
    GUICtrlSetData($edit, GUICtrlRead($edit)& "a")
    $split=StringSplit(GUICtrlRead($edit), "")
    ConsoleWrite($split[0]&@CRLF)
WEnd

Re: [..] Edit Illimité

Posté : mer. 09 sept. 2009 14:01
par TommyDDR
J'ai trouvé pourquoi tu n'a pas de limite.

Dans le GUICtrlSetData j'utilise l'option 1 qui permet d'ajouter le texte à la fin du texte existant
GUICtrlSetData($edit, "a", 1)
Ce qui me permet d'avoir la scroll barre qui défille automatiquement à chaque ajout.

Comment supprimer la limite de caractères en gardant l'option "1" du GUICtrlSetData ?

Ou :

Comment faire défilé automatiquement la scrollbarre jusqu'en bas ?

Re: [..] Edit Illimité

Posté : mer. 09 sept. 2009 14:07
par kay69
Ok, tu a juste a faire comme moi alors^^

Code : Tout sélectionner

GUICtrlSetData($edit, GUICtrlRead($edit)& "a")
Cela écrit ce qu'il y a d'écrit dedans puis un "a".

Si pour toi le sujet est résolu Edit ton premier message et met [R] au lieu de [..]

Re: [..] Edit Illimité

Posté : mer. 09 sept. 2009 14:07
par TommyDDR
Arf, édité trop tard ^^, lis mon post éditer juste au dessu de toi.

Voila mon code :

Code : Tout sélectionner

#include <WindowsConstants.au3>
#include <EditConstants.au3>
GUICreate("", 200, 200)
$edit=GUICtrlCreateEdit("", 0, 0, 200, 200, $ES_AUTOVSCROLL + $WS_VSCROLL + $ES_READONLY)
GUISetState()
While 1
    GUICtrlSetData($edit, GUICtrlRead($edit) & "aaaaaaaaaa" & @CRLF)
    $split=StringSplit(GUICtrlRead($edit), "")
    ConsoleWrite($split[0]&@CRLF)
WEnd
 

Re: [..] Edit Illimité

Posté : mer. 09 sept. 2009 14:12
par kay69
Ajoute sa juste apres le GuiCtrlSetData :

Code : Tout sélectionner

_GUICtrlEdit_LineScroll($edit, 0, _GUICtrlEdit_GetLineCount($Edit))
Par contre tu a besoin de cette include :

Code : Tout sélectionner

#Include <GuiEdit.au3>
En gros sa donne sa avec ton code :

Code : Tout sélectionner

#include <WindowsConstants.au3>
#include <EditConstants.au3>
#Include <GuiEdit.au3>
GUICreate("", 200, 200)
$edit=GUICtrlCreateEdit("", 0, 0, 200, 200, $ES_AUTOVSCROLL + $WS_VSCROLL + $ES_READONLY)
GUISetState()
While 1
    GUICtrlSetData($edit, GUICtrlRead($edit) & "aaaaaaaaaa" & @CRLF)
    _GUICtrlEdit_LineScroll($edit, 0, _GUICtrlEdit_GetLineCount($Edit))
    $split=StringSplit(GUICtrlRead($edit), "")
    ConsoleWrite($split[0]&@CRLF)
WEnd

Re: [..] Edit Illimité

Posté : mer. 09 sept. 2009 16:22
par TommyDDR
Bon bah... j'allai te dire merci mais ta méthode est beaucoup trop longue pour affiché les caractères quand ceux ci dépasse les 30 000/40 000

Pour info : je suis dans de la connexion TCP et ce script me sert pour une fenetre de debug pour vérifier les échanges entre le serveur et le client donc je ne peux me permettre de ralentir tout ça ^^'

Si quelqu'un d'autre à une solution...

Re: [..] Edit Illimité

Posté : mer. 09 sept. 2009 16:26
par Iste
Hum, sans vouloir faire mon chiant,
Je ne connais pas ton script, mais pour être régulièrement dans des cas similaire, je pose simplement la question :

Es-ce vraiment utile d'en garder autant ?

Dans mes fenêtres de début, je garde uniquement les dernières actions
Dans le cas ou c'est très long, j'écris dans un fichier

Sinon, pour quand même aller dans le sens du "je répond au lieux de dire que c'est pas bien",
Essaye de stoker tout le texte dans une variable

Code : Tout sélectionner

$texte &= $nouveautexte
Puis affiche ensuite chaque foi cette variable dans l'edit.

Code : Tout sélectionner

GUICtrlSetData($edit,$texte)
Si ca scroll pas tout en bas automatiquement, regarde du coté des UDF

Code : Tout sélectionner

#Include <GuiEdit.au3>
_GUICtrlEdit_Scroll($hWnd, $iDirection)
_GUICtrlEdit_LineScroll($hWnd, $iHoriz, $iVert)
vala

Edit :
Essaye déja avec _GUICtrlEdit_AppendText($hWnd, $sText) xD

Re: [..] Edit Illimité

Posté : mer. 09 sept. 2009 16:41
par TommyDDR
AppendText bloque a 30000 aussi.

J'ai finalement effacer la fenêtre quand les 30 000 caractères sont atteint (en effet, le début ne sert plus quand 30 000 autres caractères sont la).

Merci.

"Résolu..."