Page 1 sur 1
[Résolu]Ajouter du texte dans un StringGadget?
Publié : dim. 21/sept./2008 8:13
par Neveware
Bonjour à tous
Alors voilà, j'ai un petit Problème .... J'aimerais ajouter du texte à la ligne dans un StringGadget (plus précisément : StringGadget(#Console_Chat, 10, 10, 500, 160, "", #PB_String_ReadOnly) ) Et j'ai essayé sa mais sa ne marche pas trop :s .... :
Code : Tout sélectionner
Demande = SetGadgetText(#Console_Chat, "En Attente...") ; On affiche le premier texte
Acceptation = SetGadgetText(#Console_Chat, "Attente terminée!")
Mais sa ne m'affiche que "Attente Terminée!" j'ai essayé d'ajouter Demande + "Attente Terminée!" mais la valeur des SetGadgetText sont des chiffres... Donc j'ai besoin de votre aide s'il vous plaît :'(
Re: Ajouter du texte dans un StringGadget?
Publié : dim. 21/sept./2008 8:34
par Neveware
J'ai essayé sa et sa marche :
SetGadgetText(#Console_Chat,GetGadgetText(#Console_Chat)+"Test")
Mais maintenant, comment faire un retour à la ligne? xD
Publié : dim. 21/sept./2008 8:40
par kerkael
C'est un grand classique des chaînes de caractères.
Le saut de ligne doit être envoyé à l'intérieur de la chaîne.
Il y a pour cela 2 codes Ascii prévus :
chr(10) qui correspond historiquement à la touche entrée
chr(13) qui correspondrait à la touche Retour Chariot (Return)
On notera que la plupart du temps le résultat est le même, en tout cas pour les chaînes de caractères. En ce qui concerne l'écriture dans des fichiers output, le résultat ne sera pas le même.
; PureBasic Visual Designer v3.95 build 1485 (PB4Code)
Procedure Ouvre_Fenetre_Principale()
If openwindow (0, 0, 0, 300, 100, "Fenêtre Principale" , #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
If creategadgetlist ( windowid (0))
textgadget (1,10,5,280,50, "Saut de ligne par chr(10)" + chr (10)+ "dans la chaîne" )
textgadget (2,10,55,280,50, "Saut de ligne par chr(13)" + chr (13)+ "dans la chaîne" )
EndIf
EndIf
EndProcedure
ouvre_fenetre_principale()
Repeat
Event= waitwindowevent ()
Until event= #PB_Event_CloseWindow
Au fait, les GadgetToolTip se contrefichent de la présence d'un saut d ligne dans la chaîne de caractères. L'infobulle ne tient que sur une ligne.
Publié : dim. 21/sept./2008 8:44
par Neveware
Le problème avec Chrr(1°) c'est que quand j'ajoute le code comme ceci :
Code : Tout sélectionner
SetGadgetText(#Console_Chat,GetGadgetText(#Console_Chat)+"Connexion au serveur...")
SetGadgetText(#Console_Chat,GetGadgetText(#Console_Chat) + Chr (10)+ "Connexion au Serveur réussie!")
Et bien sa m'affiche Le texte mais sans retour à la ligne... Un petit carré juste entre les deux textes xD, mais franchement merci beaucoup pour la definition des Chr je savais pas sa va m'être utile!

Publié : dim. 21/sept./2008 8:46
par kerkael
Damned ! Le SetGadgetText sera donc limité comme le GadgetToolTip à l'écriture sur une seule ligne.
Tu as reçu le même symptôme !
Mais c'est quoi cet espace entre CHR et (10) que tu as mis ? chr(10) collé c'est plus joli. Mais ca n'a pas d'impact.
Bon, appelons les experts au secours !
Publié : dim. 21/sept./2008 8:47
par Neveware
xD bon bah je vais essayer un autre moyen snif :'(
Publié : dim. 21/sept./2008 9:44
par Neveware
Petit up! J'ai essayé avec un editor gadget mais.... Même PB toujours ce petit carré là! C'est pas parce que c'est pas en caractères ASCII? xD
Publié : dim. 21/sept./2008 10:11
par Backup
Neveware a écrit :Petit up! J'ai essayé avec un editor gadget mais.... Même PB toujours ce petit carré là! C'est pas parce que c'est pas en caractères ASCII? xD
bah non !! surment pas
bon pour faire ce que tu veux faire il te faut utiliser l'editorgadget
depuis la version 4.00 de memoire les String gadget ne prennent plus le multiligne !!
l'editor gadget est la pour ça en principe !!
voici un exemple qui te montre comment faire
de plus tu as aussi l'astuce pour récupérer les touches du clavier en mode fenêtre, ce qui peut toujour te servir un jour
pour l'exemple j'utilise la touche ESPACE
lors de son appuis cela ajoute une phrase a celle deja presente, et
aussi ajoute une autre ligne !!
; PureBasic Visual Designer v3.95 build 1485 (PB4Code)
#Console_Chat =3
Procedure Ouvre_Fenetre_Principale()
If openwindow (0, 0, 0, 800, 400, "Fenêtre Principale" , #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
If creategadgetlist ( windowid (0))
editorgadget ( #Console_Chat , 10, 10, 500, 160, #PB_Editor_ReadOnly )
setgadgettext ( #Console_Chat , "En Attente... appuis sur ESPACE" )
textgadget (1,550,5,280,50, "Saut de ligne par chr(10)" + chr (10)+ "dans la chaîne" )
textgadget (2,550,55,280,50, "Saut de ligne par chr(13)" + chr (13)+ "dans la chaîne" )
EndIf
EndIf
EndProcedure
Ouvre_Fenetre_Principale()
Repeat
Event= waitwindowevent ()
If GetAsyncKeyState_ ( #VK_SPACE ) And a=0 ; si on appuis sur la touche espace
setgadgettext ( #Console_Chat , getgadgettext ( #Console_Chat )+ " ceci est ajouté" + chr (13)+ "et ceci aussi" )
a=1
EndIf
Until Event= #PB_Event_CloseWindow
Publié : dim. 21/sept./2008 10:18
par Neveware
Merci sa marche impec! Franchement j'adore le PureBasic!

Publié : dim. 21/sept./2008 10:19
par Backup
Neveware a écrit :Merci sa marche impec! Franchement j'adore le PureBasic!

j'ai corrigé un petit bug, j'avais pas mis la bonne constante a la creation de l'editor
#PB_string_ReadOnly
au lieu de
#PB_Editor_ReadOnly