Ce sujet est résolu.
1 | |||||
Auteur | Messages | ||||
---|---|---|---|---|---|
jibi | #1 Posté le 7/8/2012 à 23:06:29 | ||||
codergambas.jimdofree.com | Bonjour à vous Question simple mais pourtant je trouve pas la soluce Pour définir la position du curseur dans une textAera j'ai jusqu'à présent fait : TextAera.pos = textAera.lenght Sur ma textAera qui est en ReadOnly = false, je voudrais que mon curseur se place en décalé sur la droite avec un espace quand on entre du texte au clavier aussi j'ai écris :
Hors, j'ai beau faire avec ou sans ce bout de code, même en mettant partout hTextAera.pos = longTextArea + 10 ou 20 DE plus, je n'arrive pas à changer la couleur du curseur clignotant de la textaera, j'ai une textArea noire et le curseur ne se voit pas! Jibi Debian GNU/Linux 11 64-bit | ||||
Prokopy | #2 Posté le 7/8/2012 à 23:38:08 | ||||
Kinder Pingui | Salut jibi,Sur ma textAera qui est en ReadOnly = false, je voudrais que mon curseur se place en décalé sur la droite avec un espace quand on entre du texte au clavier Si j'ai bien compris, tu veux que le curseur qui définit là où va se situer le texte ne soit plus là où va se situer le texte ? Personnellement je ne vois pas comment faire (ni vraiment ce que tu veux faire d'ailleurs). De plus, je n'arrive pas à changer la couleur du curseur clignotant de la textaera, j'ai une textArea noire et le curseur ne se voit pas! Ça à mon avis, c'est sans doute un bug dans ton thème Qt/GTK (je ne sais pas quel environnement tu utilises). Ou alors si tu veux dire que tu as modifié la propriété ForeGround (pour la couleur de texte) de ton Textarea et que ça n'a eu aucun effet sur le curseur, à mon avis c'est un bug. (Mais fais quand même attention quand tu modifies les couleurs de ton programme, ça risque de ne pas plaire à tout le monde. ) La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand ça marche mais qu'on ne sait pas pourquoi. Quand la théorie rejoint la pratique, rien ne fonctionne et on ne sait pas pourquoi. | ||||
jibi | #3 Posté le 7/8/2012 à 23:49:14 | ||||
codergambas.jimdofree.com | Merci prokopy je n'ai pas été clair c'est vrai j'ai un process qui ecrit sur la textAera, mais je veux que lorsque on entre au clavier du texte, on ne puisse pas effacer le texte précédemment écrit par le process : cela c'est ok Lorsque l'utilisateur entre du texte, le texte entre juste à la suite de celui du process : c'est cela que je veux modifier afin que le texte entré par l'utilisateur soit placé un ou deux caractère apres automatiquement sans avoir à taper sur espace voilà Debian GNU/Linux 11 64-bit | ||||
Prokopy | #4 Posté le 8/8/2012 à 00:13:07 | ||||
Kinder Pingui | Ah ok je vois un peu mieux. Si tu sais quand ton processus a fini d'écrire son texte dans ton textArea (lorsqu'il est terminé par exemple), tu peux tout simplement ajouter une ou deux espaces à la fin de ton textarea :
(Je sais plus si cette méthode ajoute le texte avant ou après le curseur, donc il faudra peut-être repositionner le curseur ensuite au besoin). Si tu ne sais pas vraiment quand ton process a fini d'écrire, tu peux mémoriser via une variable globale si le dernier caractère a été écrit par le processus ou par l'utilisateur, et vérifier cette variable dans ton évènement keypress. Exemple :
La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand ça marche mais qu'on ne sait pas pourquoi. Quand la théorie rejoint la pratique, rien ne fonctionne et on ne sait pas pourquoi. | ||||
jibi | #5 Posté le 8/8/2012 à 09:55:49 | ||||
codergambas.jimdofree.com | Merci prokopy effectivement TextAera.insert(" ") fonctionne bien Mais pourquoi textAera.pos = (textaera.lenght +1) ne marche pas puisque si je comprend bien .pos sert à définir l'emplacement du curseur, donc là ou le texte sera entré? Quant à la couleur du curseur de la textAera mon environnement pour cet ordi est Kubuntu 11.10 et KDE 4.7.4 et GB3 svn #5004 : bug peut être!? Debian GNU/Linux 11 64-bit | ||||
GarulfoUnix | #6 Posté le 8/8/2012 à 09:56:07 | ||||
By the way |
J'aurais fais tout simplement ainsi. Ensuite en fonction de la position du curseur, là je jouerai avec la méthode .Insert() comme Prokopy a expliqué. | ||||
Prokopy | #7 Posté le 8/8/2012 à 11:24:46 | ||||
Kinder Pingui | effectivement TextAera.insert(" ") fonctionne bien C'est simple : la propriété Pos du textarea définit où sera situé ton curseur dans le texte. Si tu dépasses la longueur du texte, le curseur va se ramener à la fin du texte.
En principe si tu changes la couleur de ton texte, le curseur devrait avoir la même couleur. Je vais faire des tests de mon côté et si il s'avère que c'est un bug dans gb.qt4, alors je vais faire un rapport de bug à Benoît.
Bon là j'ai fait un peu au pif j'avoue, mais depuis que je bosse sur gb.xml je traque la moins ligne de code qui pourrait peut-être éventuellement être plus lente de 50 µs. Bon en principe pour savoir lequel est le plus lent tu mets ça dans une boucle For i = 0 to 500 et tu regardes les temps d'exécution avec le nouveau profileur de Gambas. La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand ça marche mais qu'on ne sait pas pourquoi. Quand la théorie rejoint la pratique, rien ne fonctionne et on ne sait pas pourquoi. | ||||
jibi | #8 Posté le 8/8/2012 à 11:35:43 | ||||
codergambas.jimdofree.com | Merci à vous tous de votre disponibilité j'ai pu terminer mon bout de code avec ce petit souci de placement de curseur résolu Pour les couleurs, à ce que l'on m'a dis : le curseur de la TextAera est bleu marine la couleur du texte est vert la couleur de la textaera grise je cherche toujours à changer les couleurs car moi je ne les voit pas comme la majorité !! désolé mais j'ai un bug dans mon code ADN donc a priori le curseur n'a pas la même couleur que le texte A plus Jibi Debian GNU/Linux 11 64-bit | ||||
gambix | #9 Posté le 8/8/2012 à 15:31:05 | ||||
Faire simple ! |
C'est plus élégant Moins de texte dans une signature c'est agrandir son espace. | ||||
1 |