Page 3 sur 8
Publié : lun. 06/déc./2004 19:20
par Le Soldat Inconnu
ah, au fait, j'ai vu que tu avais mis 2 panel gadget imbriqué mais un seul CloseGadgetList (j'ai vu ça en testant PBSyntax sur ton code)
il en manque un, bon c'est juste histoire d'écrire plus proprement le code
voilà

Publié : lun. 06/déc./2004 20:10
par erix14
Merci Denis de t'occuper de ce problème, il m'est arrivé la même chose sur un fichier de grande taille, mais je ne sais pas si c'est dû à la taille...
La nouvelle version progresse maintenant on peut fermer les fichiers...
Merci le Soldat Inconnu pour ta remarque, je viens de faire la correction. Un code propre et plus compréhensible...
a+
Publié : mar. 07/déc./2004 12:26
par Anonyme2
erix14 a écrit :Merci Denis de t'occuper de ce problème, il m'est arrivé la même chose sur un fichier de grande taille, mais je ne sais pas si c'est dû à la taille...
La nouvelle version progresse maintenant on peut fermer les fichiers...
Merci le Soldat Inconnu pour ta remarque, je viens de faire la correction. Un code propre et plus compréhensible...
a+
Le mien fait environ 8500 lignes dont environ 4000 lignes de codes pour faire des tests sur mon prog, ces 4000 lignes sont en commentaire.
Peut-être la longueur ?
Publié : mar. 07/déc./2004 12:30
par Backup
j'ai perso signalé que la longueur d'un code (du listing) faisait planter le debugeur
qui n'affiche plus les ligne de code en "step"
peut etre une cause commune ?
allez voir en rubrique BUG j'avais mis un petit exemple qu'il faut tracer avec
le debugeur pour avoir le problem dont je parle et qui resemble d'une certaine maniere a votre problem !

Publié : mar. 07/déc./2004 18:48
par Anonyme2
Merci Dobro, j'ai regardé ton post mais ça n'a pas de rapport, avec ou sans débugger c'est pareil
Erix14, je pense avoir isolé le problème.
J'ai modifié le /COMMENTED pour pouvoir ouvrir les fichiers avec du code asm
J'ai mis
/INLINEASM /COMMENTED et je peux ouvrir mes applications
Bon pour le plantage c'est dans la procedure
ColoriserTexte()
On ne sortait pas de la boucle while.
Enfin de compte j'en suis arrivé là
Code : Tout sélectionner
CopyMemoryString("\line ") : LigneRTF + 1
While *Texte\b <= 32 : *Texte + 1 : Wend
If CompareMemoryString(*Texte, "v_", 1, 2) = 0 : Variable = #True : EndIf
Continue
EndIf
If c = '\' Or c = '{' Or c = '}'
CopyMemoryString("\" + Chr(c))
la boucle
While *Texte\b <= 32 prend en compte tout les caractères ASCII inférieurs ou égaux à l'espace, y compris le 0 de terminaison de chaîne et le problème intervient tout à la fin du fichier, le pointeur *Texte\b se retrouve avec une adresse ou il pointe je ne sais ou.
J'ai corrigé comme ceci
Code : Tout sélectionner
CopyMemoryString("\line ") : LigneRTF + 1
While (*Texte\b <= 32 And *Texte\b)
*Texte + 1
Wend
If CompareMemoryString(*Texte, "v_", 1, 2) = 0
Variable = #True
EndIf
Continue
EndIf
If c = '\' Or c = '{' Or c = '}'
CopyMemoryString("\" + Chr(c))
et c'est bon. J'ai chargé plusieurs fichiers sans problème.
Par contre quelques lignes juste avant dans la même procedure on a la même ligne
Code : Tout sélectionner
If c = 10 Or c = 13
If Commentaire = #True
If ListeSignet
ListeSignet = #False
ListeSLV()\Ligne = LigneRTF
ListeSLV()\Index = IndexRTF
ListeSLV()\type = 1
EndIf
CopyMemoryString("\line ") : LigneRTF + 1 : Commentaire = #False
While *Texte\b <= 32 : *Texte + 1 : Wend
Continue
EndIf
Peut-être à corriger également, mais je te laisse juge

Publié : mar. 07/déc./2004 20:05
par erix14
Excellent Denis, je savais que je pouvais compter sur toi
Mon fichier de grande taille de plante plus, mais je me suis aperçu d'un autre petit problème sur ma scrollbar qui reprend à 1 après la ligne ~32767 ( $FFFF / 2 ) certainement à cause des nombres signés, je rectifierai...
Pour l'autre ligne juste avant c'est vrai que le fichier ASM généré par PureBasic ne se termine jamais sur une ligne de commentaires, mais j'ai rectifié quand même, on ne sait jamais...
A+, et encore merci

Publié : dim. 08/mai/2005 18:00
par Progi1984
Salut,
quelques mois plus tard !
Ton outil est vachement utile mais concernant la coloration syntaxique, elle fonctionne lors du chargement d'un fichier mais pas lorsque j'écrit mon code ASM.
De plus, lors de la création d'un nouveau panel, cela clignote au niveaux des deux panels. pour régler ce pb, je dois cliquer sur le nouveau onglet affiché !
Concernant, je suis en train de travailler dessus afin de l'améliorer un max ! Ca fonctionne mais je souhiate l'améliorer
Publié : dim. 08/mai/2005 22:50
par erix14
@Progi1984
la colorisation syntaxique à la saisie est intégrée dans la version 2, mais il me reste des choses à faire avant de vous proposer cette version. Et il n'y a plus de problèmes de clignotement...
Ne perds pas ton temps à l'améliorer, car cette utilitaire est pratiquement finie.
Tu peux voir à quoi il ressemble sur mon mini site en cliquant sur le bouton [www] en bas.

Publié : lun. 09/mai/2005 6:14
par Progi1984
Tu penses le diffuser quand ?
Publié : lun. 09/mai/2005 16:23
par Progi1984
erix14 a écrit :Ne perds pas ton temps à l'améliorer, car cette utilitaire est pratiquement finie.
En fait, je parlais de ma lib qui contient des fonctions de coloration syntaxique. Et c'est celle ci que j'essaie d'améliorer en utilisant les tampons mais je n'y comprends que dalle !
Publié : lun. 09/mai/2005 19:15
par erix14
Progi1984 a écrit :Tu penses le diffuser quand ?
j'aurais déjà dû le diffuser

malheureusement j'ai pris du retard.
Même s'il n'est pas fini, on peut l'utiliser quand même... J'essaierai ce week-end où le prochain de vous le proposer en téléchargement sur mon site.
(Mais ce n'est qu'une version bêta, il ne faudra pas vous plaindre ensuite

)
Publié : lun. 09/mai/2005 21:14
par Progi1984
Et comment fais tu ta coloration syntaxique en temps réel ?
Publié : lun. 09/mai/2005 21:33
par erix14
Et comment fais tu ta coloration syntaxique en temps réel ?
À chaque fois qu'il y a un changement dans le RichEdit (#EN_CHANGE) je récupère la ligne en cours et je m'en sers pour coloriser les mots qu'il faut :
Code : Tout sélectionner
SendMessage_(Editeur()\Handle, #EM_SETSEL, Debut, Fin)
format\crTextColor = CouleurRegistre
SendMessage_(Editeur()\Handle, #EM_SETCHARFORMAT, #SCF_SELECTION, @format)
ne pas oublier de mettre ceux-ci au début pour que l'utilisateur ne s'aperçoit de rien
et cela à la fin pour que les sélections soient de nouveau visible
Publié : lun. 09/mai/2005 22:49
par Progi1984
C'est exactement ce que je fais !
Que je te réexplique :
dés qu'il y a un changement, je prends le texte de la ligne en cours, et fait comme toi pour la colorisation.
Mais le problème se pose dés que la ligne dépasse la longueur du gadget car quand je prends le texte de la ligne, je colorise certains trucs au début donc on voit bien qu'il ya un retour en début de ligne puis un retour au curseur. Et c'est cà que j'essaie de modifier !
As tu un idée ?
Publié : mar. 10/mai/2005 20:02
par erix14
@Progi1984
pour empêcher le scrolling horizontale de se faire mets cette ligne avant ton traitement de chaînes
Code : Tout sélectionner
SendMessage_(Editeur()\Handle, #EM_SETOPTIONS, #ECOOP_XOR, #ECO_AUTOHSCROLL)
et à la fin cela pour remettre en ordre
Code : Tout sélectionner
SendMessage_(Editeur()\Handle, #EM_SETOPTIONS, #ECOOP_OR, #ECO_AUTOHSCROLL)