Page 1 sur 1
[RESOLU] drawtext et retour à la ligne
Publié : mer. 16/mars/2011 16:22
par blendman
désolé j'ai encore une question débutant
Voici, avec un messageRequester(), on peut utilise chr(13) pour aller à la ligne, peut-on le faire avec un drawtext(), car je ne trouve pas l'équivalent ?
J'ai essayé ça, mais ça ne marche pas.
Code : Tout sélectionner
DrawText(10,10,"Vie " +Str(player\vie) +Chr(13)+"Mana " +Str(player\mana))
Merci d'avance .
Re: drawtext et retour à la ligne
Publié : mer. 16/mars/2011 16:37
par dayvid
Hé salut !
Non j'ai essayer et sa ne marche pas
Oui car je voulais couper le texte d'un bouton fait maison pour le mettre sur deux ligne
Regarde mon dernier exemple si sa peut t'aider:
http://www.purebasic.fr/french/viewtopi ... 5&start=75
D'ailleur j'aimerais bien savoir pourquoi sa ne marche pas ?
même le chr(13) + chr(10) ne marche pas

Re: drawtext et retour à la ligne
Publié : mer. 16/mars/2011 16:43
par Ar-S
Drawtext ne permet pas l'utilisation des chr(10) ou chr(13)
Il te faut je pense "drawtexter" tes 2 lignes.
Tu te fais une Boite et tu écris ton texte dedans
Code : Tout sélectionner
If OpenWindow(0, 0, 0, 200, 200, "2DDrawing Example", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
If CreateImage(0, 200, 200) And StartDrawing(ImageOutput(0))
DrawingMode(#PB_2DDrawing_Transparent)
Box(0, 0, 200, 200, RGB(255, 255, 255))
DrawText(10, 10, "vie : 100" +Chr(10), RGB(Random(255), Random(255), Random(255)))
DrawText(10, 30, "Mana : 100", RGB(Random(255), Random(255), Random(255)))
StopDrawing()
ImageGadget(0, 0, 0, 200, 200, ImageID(0))
EndIf
Repeat
Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow
EndIf
Re: drawtext et retour à la ligne
Publié : mer. 16/mars/2011 17:43
par G-Rom
en reprenant le code de ar-s :
Code : Tout sélectionner
Procedure DrawTextEX(x.f,y.f,text$)
Protected nbLine.i=1 ; il y a au moins une ligne
Protected lineHeight.i = 22 ; Espace entre les lignes
nbLine + CountString(text$,Chr(10)) ; Nombre de "saut" , au moins 1
For i = 1 To nbLine
Line$ = StringField(text$,i,Chr(10)) ; on découpe entre les chr(10)
DrawText(x, y + ( (i-1)*lineHeight), Line$,$0,$FFFFFF) ; On affiche , et on ajuste suivant l'itérateur 'i' et la hauteur de ligne
Next
EndProcedure
MyText$ = "g-rom rules"+Chr(10)
MyText$ + "the world !"+Chr(10)
MyText$ + "---------------"
If OpenWindow(0, 0, 0, 200, 200, "2DDrawing Example", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
If CreateImage(0, 200, 200) And StartDrawing(ImageOutput(0))
DrawingMode(#PB_2DDrawing_Transparent)
Box(0, 0, 200, 200, RGB(255, 255, 255))
DrawTextEX(10,10,MyText$)
StopDrawing()
ImageGadget(0, 0, 0, 200, 200, ImageID(0))
EndIf
Repeat
Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow
EndIf
Re: drawtext et retour à la ligne
Publié : mer. 16/mars/2011 17:59
par blendman
G-Rom a écrit :en reprenant le code de ar-s :
Code : Tout sélectionner
Procedure DrawTextEX(x.f,y.f,text$)
Protected nbLine.i=1 ; il y a au moins une ligne
Protected lineHeight.i = 22 ; Espace entre les lignes
nbLine + CountString(text$,Chr(10)) ; Nombre de "saut" , au moins 1
For i = 1 To nbLine
Line$ = StringField(text$,i,Chr(10)) ; on découpe entre les chr(10)
DrawText(x, y + ( (i-1)*lineHeight), Line$,$0,$FFFFFF) ; On affiche , et on ajuste suivant l'itérateur 'i' et la hauteur de ligne
Next
EndProcedure
MyText$ = "g-rom rules"+Chr(10)
MyText$ + "the world !"+Chr(10)
MyText$ + "---------------"
If OpenWindow(0, 0, 0, 200, 200, "2DDrawing Example", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
If CreateImage(0, 200, 200) And StartDrawing(ImageOutput(0))
DrawingMode(#PB_2DDrawing_Transparent)
Box(0, 0, 200, 200, RGB(255, 255, 255))
DrawTextEX(10,10,MyText$)
StopDrawing()
ImageGadget(0, 0, 0, 200, 200, ImageID(0))
EndIf
Repeat
Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow
EndIf
G-rom à la rescousse
encore bravo et merci beaucoup, t'es vraiment un chef
