Bug avec DrawText()

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
graph100
Messages : 1318
Inscription : sam. 21/mai/2005 17:50

Bug avec DrawText()

Message par graph100 »

Bonsoir,

Je voulais savoir si vous aviez le même problème que moi sur le code suivant : le texte dessiné en premier apparait sous le deuxième lors de l'utilisation de caractères spéciaux comme #CRLF$

Code : Tout sélectionner

OpenWindow(0, 0, 0, 500, 500, "test", #PB_Window_ScreenCentered | #PB_Window_SystemMenu)

CanvasGadget(0, 0, 0, 500, 500)


font = LoadFont(#PB_Any, "Arial", 8)

StartDrawing(CanvasOutput(0))

DrawText(0, 0, "Texte de test", #Red, #Blue)


DrawingFont(FontID(font))
DrawText(50, 50, " " + #CRLF$ + #CRLF$ + "HEY", #Green)

StopDrawing()


Repeat
	event = WaitWindowEvent()
Until event = #PB_Event_CloseWindow

End
Peut-être un soucis d'initialisation de buffer pour des raisons de vitesse ? Dois-je considérer ça comme normal et gérer les caractères spéciaux à part ?
Je parle pas du retour à la ligne ici, je sais que drawtext() n'est pas prévu pour ça.
_________________________________________________
Mon site : CeriseCode (Attention Chantier perpétuel ;))
Avatar de l’utilisateur
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

Re: Bug avec DrawText()

Message par SPH »

"HEYte de"

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Bug avec DrawText()

Message par Ar-S »

Perso le Hey apparait bien sous le 1er texte (5.20 b7)
Avec ou sans les #CRLF$ (qui n'ont pas lieu d'être dans un dessin).
Etrange.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
graph100
Messages : 1318
Inscription : sam. 21/mai/2005 17:50

Re: Bug avec DrawText()

Message par graph100 »

c'est normal de voir le "HEY", mais on ne devrai pas voir le reste. Si tu regardes le code, les deux textes ne sont pas dessinés au même endroit.
_________________________________________________
Mon site : CeriseCode (Attention Chantier perpétuel ;))
Avatar de l’utilisateur
Micoute
Messages : 2584
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Bug avec DrawText()

Message par Micoute »

Bonjour graph100, si tu essayes le programme qui suit, c'est à dire sans le HEY, ça fait exactement la même chose, c'est peut-être un bug, car le tampon n'a pas été vidé au moment de l'affichage !

Code : Tout sélectionner

OpenWindow(0, 0, 0, 500, 500, "test", #PB_Window_ScreenCentered | #PB_Window_SystemMenu)

CanvasGadget(0, 0, 0, 500, 500)


font = LoadFont(#PB_Any, "Arial", 8)

StartDrawing(CanvasOutput(0))

DrawText(0, 0, "Texte de test", #Red, #Blue)


DrawingFont(FontID(font))
DrawText(50, 50, #CRLF$ + #CRLF$, #Green)

StopDrawing()


Repeat
   event = WaitWindowEvent()
Until event = #PB_Event_CloseWindow

End
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Bug avec DrawText()

Message par Ar-S »

Je vois ce que tu veux dire. Effectivement la taille du #CRLF$ contient le 1er texte.

Code : Tout sélectionner

OpenWindow(0, 0, 0, 300, 150, "test", #PB_Window_ScreenCentered | #PB_Window_SystemMenu)

CanvasGadget(0, 0, 0, 300, 150)

font = LoadFont(#PB_Any, "Arial", 14)
T.s = "Texte de test"
;TT.s = #CRLF$+#CRLF$
TT.s = Chr(13)+Chr(13)

StartDrawing(CanvasOutput(0))

DrawingFont(FontID(font))

T1 = DrawText(0, 0, T.s, #Red, #Blue)
T2 = DrawText(0, 50, TT.s , #Green) 

StopDrawing()


Repeat
		event = WaitWindowEvent()
Until event = #PB_Event_CloseWindow

End
Mais je maintiens qu'il ne faut pas confondre un outils de dessin (le canvas) avec un editeur. le chr(13) ou #CRLF$ n'ont pas lieu d'être dans un canvas avec du texte vu que tu dois positionner le texte via des coordonnées.

En tout cas c'est peut-être une histoire de mémoire tampon.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
GallyHC
Messages : 1708
Inscription : lun. 17/déc./2007 12:44

Re: Bug avec DrawText()

Message par GallyHC »

Bonjour,

Je vois dans le code :

Code : Tout sélectionner

;TT.s = #CRLF$+#CRLF$
TT.s = Chr(13)+Chr(13)
Mais "#CRLF$" n'est pas egale a "Chr(13)+Chr(13)", mais à "Chr(13)+Chr(10)" (si je ne dit pas de bêtise et pour Windows en tout cas).

Cordialement,
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Bug avec DrawText()

Message par Ar-S »

GallyHC a écrit :Bonjour,

Je vois dans le code :

Code : Tout sélectionner

;TT.s = #CRLF$+#CRLF$
TT.s = Chr(13)+Chr(13)
Mais "#CRLF$" n'est pas egale a "Chr(13)+Chr(13)", mais à "Chr(13)+Chr(10)" (si je ne dit pas de bêtise et pour Windows en tout cas).

Cordialement,
GallyHC
Pour compléter :
#CR = chr(13)
#LF = chr(10) donc #CRLF$ c'est chr(13) puis chr(10)...
Ce sont les symboles retour à la ligne donc dans les 2 cas le soucis est le même.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

Re: Bug avec DrawText()

Message par SPH »

Question : que doit faire #CRLF$ normalement ?

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Bug avec DrawText()

Message par Ar-S »

SPH a écrit :Question : que doit faire #CRLF$ normalement ?
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
salutcava
Messages : 34
Inscription : lun. 10/juin/2013 12:01

Re: Bug avec DrawText()

Message par salutcava »

Bonjour/bonsoir
CR = Carriage Return : c'est un retour chariot : le curseur d'affichage du texte retourne tout à gauche (déplacement horizontal)
LF = Line Feed : c'est saut de ligne : le curseur d'affichage descend une ligne en dessous (déplacement vertical)
L'association de ces deux caracteres spéciaux permet de faire un retour à la ligne tel que nous l'attendons.

Code : Tout sélectionner

http://fr.wikipedia.org/wiki/Carriage_Return_Line_Feed
@Graph100 Tu as utilisé quelle version de PB pour avoir un BUG ? Sous la version 5.11 (x86) tout fonctionne comme attendu.

Au revoir.
Avatar de l’utilisateur
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

Re: Bug avec DrawText()

Message par SPH »

Ar-S a écrit :
SPH a écrit :Question : que doit faire #CRLF$ normalement ?
Je ne savais pas ce que ca veux dire :oops:

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Bug avec DrawText()

Message par Ar-S »

Et tu verras que dans ta citation le CRLF pointe sur sa définition.
T'es un peu fainéant tout de même, tu tapes CRLF dans google c'est encore plus rapide que de demander.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

Re: Bug avec DrawText()

Message par SPH »

Ar-S a écrit :Et tu verras que dans ta citation le CRLF pointe sur sa définition.
T'es un peu fainéant tout de même, tu tapes CRLF dans google c'est encore plus rapide que de demander.
Je ne savais meme pas que ca avait une signification

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

Re: Bug avec DrawText()

Message par SPH »

CRLF : ca y est, j'ai fait le rapprochement avec notepad++

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Répondre