Bonjour à tous,
il y a quelques années, pour mes filles, j'avais conçu un logiciel permettant de rechercher des recettes sur internet selon les divers composants choisis,
j'avais aussi inclus un lexique culinaire qui fonctionnait très bien, mais ce n'est plus le cas, je pense que ça vient de Windows 10.
Ce que je souhaite faire, c'est redimensionner la fenêtre par rapport au texte affiché, et d'après ce que j'ai compris, il faut redimensionner avant d'écrire dans la fenêtre sinon le texte est tout déformé,
je ne devrais peut-être pas utiliser un screen, je ne vois pas ce qui pêche, c'est pourquoi je sollicite votre aide qui me sera secourable et je vous en remercie énormément.
les fichiers se trouvent à cette adresse : https://www.dropbox.com/sh/jdo5er9ddzeu ... 8vE_a?dl=0
Redimensionner une fenêtre selon le texte qu'elle contient
Redimensionner une fenêtre selon le texte qu'elle contient
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 5.73 PB 6.00 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Un homme doit être poli, mais il doit aussi être libre !
Re: Redimensionner une fenêtre selon le texte qu'elle contie
Bonjour Micoute, chez moi (sous windob 10) ça compile sans problème.
Ce que tu cherche à faire c'est d'ouvrir un screen pour pouvoir afficher tout ton text sur une seul ligne ? Si c'est le cas, alors tu es obligé de fermer / ouvrir (donc reload) à chaques modification de la taille de ton screen... C'est lourd... Pourquoi ne pas garder le même screen ouvert et simplement l'afficher ou le cacher en fonction du besoin ?
PS : Pour rappel afficher du text via drawtext, c'est très consomant pour le CPU.
Ce que tu cherche à faire c'est d'ouvrir un screen pour pouvoir afficher tout ton text sur une seul ligne ? Si c'est le cas, alors tu es obligé de fermer / ouvrir (donc reload) à chaques modification de la taille de ton screen... C'est lourd... Pourquoi ne pas garder le même screen ouvert et simplement l'afficher ou le cacher en fonction du besoin ?
PS : Pour rappel afficher du text via drawtext, c'est très consomant pour le CPU.
Re: Redimensionner une fenêtre selon le texte qu'elle contie
Merci boby de te pencher sur mon problème,
ce que je veux arriver à faire, c'est afficher un texte sur plusieurs lignes, car je le limite en longueur, la procédure d'écriture me renvoie la position du curseur, donc je veux redimensionner la fenêtre pour qu'elle ne contiennent que le texte affiché, car là la fenêtre est dimensionnée au départ à la taille du texte le plus long à afficher et pour les texte plus court, la fenêtre est trop grande.
ce que je veux arriver à faire, c'est afficher un texte sur plusieurs lignes, car je le limite en longueur, la procédure d'écriture me renvoie la position du curseur, donc je veux redimensionner la fenêtre pour qu'elle ne contiennent que le texte affiché, car là la fenêtre est dimensionnée au départ à la taille du texte le plus long à afficher et pour les texte plus court, la fenêtre est trop grande.
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 5.73 PB 6.00 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Un homme doit être poli, mais il doit aussi être libre !
Re: Redimensionner une fenêtre selon le texte qu'elle contie
Finalement, j'ai trouvé une solution qui me satisfait , il suffit de fermer la fenêtre et de la rouvrir aux nouvelles dimensions
Code : Tout sélectionner
Procedure Afficher_Lexique(i, Terme.s, Description.s)
Protected X, Y, Hauteur
If OpenWindow(#Fenetre_Afficher_Lexique, 0, 0, 470, 360, Terme, #PB_Window_BorderLess|#PB_Window_ScreenCentered)
If OpenWindowedScreen(WindowID(#Fenetre_Afficher_Lexique), 0, 0, WindowWidth(#Fenetre_Afficher_Lexique), WindowHeight(#Fenetre_Afficher_Lexique))
ClearScreen($FFFFFF-CouleurFond)
;dessin
If StartDrawing(ScreenOutput())
DrawingFont(FontID(#Police_Lexique))
FrontColor(#Yellow)
BackColor(#Blue)
x = 10 : y = 0
y + TextHeight(" ")
;Description
Hauteur = TexteJustifieGauche(x, y, Donnee(i)\Description, 450,$FFFFFF-CouleurFond, $FFFFFF-CouleurFond, 5)
StopDrawing()
EndIf
EndIf
EndIf
CloseWindow(#Fenetre_Afficher_Lexique)
If OpenWindow(#Fenetre_Afficher_Lexique, 0, 0, 470, Hauteur + y, Terme, #PB_Window_BorderLess|#PB_Window_ScreenCentered)
If OpenWindowedScreen(WindowID(#Fenetre_Afficher_Lexique), 0, 0, WindowWidth(#Fenetre_Afficher_Lexique), WindowHeight(#Fenetre_Afficher_Lexique))
ClearScreen($FFFFFF-CouleurFond)
If StartDrawing(ScreenOutput())
DrawingFont(FontID(#Police_Lexique))
CentrerTexte(#Fenetre_Afficher_Lexique, 0, Donnee(i)\Terme, $FFFFFF-CouleurTexte, $FFFFFF-CouleurFond)
TexteJustifieGauche(x, y, Donnee(i)\Description, 450,$FCA093, $FFFFFF-CouleurFond, 5)
StopDrawing()
EndIf
FlipBuffers()
EndIf
EndIf
EndProcedure
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 5.73 PB 6.00 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Un homme doit être poli, mais il doit aussi être libre !
Re: Redimensionner une fenêtre selon le texte qu'elle contie
Bonjour Micoute !
Si ta 1ère fenêtre est invisible, avec l'option #PB_Window_Invisible de la fonction OpenWindow(), est-ce que tu peux quand même calculer les dimensions de ta 2nde fenêtre?
Si ta 1ère fenêtre est invisible, avec l'option #PB_Window_Invisible de la fonction OpenWindow(), est-ce que tu peux quand même calculer les dimensions de ta 2nde fenêtre?
Re: Redimensionner une fenêtre selon le texte qu'elle contie
Bonjour Ollivier,
c'est tout à fait vrai, merci pour l'astuce.
c'est tout à fait vrai, merci pour l'astuce.
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 5.73 PB 6.00 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Un homme doit être poli, mais il doit aussi être libre !