[Résolu] Entrer une valeur dans une fenêtre graphique
[Résolu] Entrer une valeur dans une fenêtre graphique
Bonsoir à tous,
je m'explique peut-être mal, mais j'aimerais faire entrer une valeur, par exemple dans un StringGadget ou autre dans une fenêtre graphique.
Est-ce que cela est possible ?
Je ne vous remercierai jamais assez pour la réponse !
je m'explique peut-être mal, mais j'aimerais faire entrer une valeur, par exemple dans un StringGadget ou autre dans une fenêtre graphique.
Est-ce que cela est possible ?
Je ne vous remercierai jamais assez pour la réponse !
Dernière modification par Micoute le ven. 28/nov./2014 11:15, modifié 1 fois.
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 !
Un homme doit être poli, mais il doit aussi être libre !
Re: Entrer une valeur dans une fenêtre graphique
J'ai parfaitement compris ce que tu veux Micoute. Par contre, j'ai pas exactement tout compris ce que tu veux...
Un graphique linéaire? En camembert? En 3D? Fractal?
N'hésite pas à offrir la toute petite précision qui fera que... Ben la clé, il faudra pas nager pour aller la chercher!
Un graphique linéaire? En camembert? En 3D? Fractal?
N'hésite pas à offrir la toute petite précision qui fera que... Ben la clé, il faudra pas nager pour aller la chercher!
Re: Entrer une valeur dans une fenêtre graphique
Bonsoir Ollivier, en fait je cherche juste à entrer une valeur qui pourra être reprise pour faire des calculs.
une petite partie du code, les parties commentées sont celles où je bloque :
une petite partie du code, les parties commentées sont celles où je bloque :
Code : Tout sélectionner
Global x2.f, y2.f, a.f = 17592186044416
Global.i XX = 10, YY = 0, Valeur
DrawText(XX, YY, "Racine carrée par la méthode de Babylone")
YY + TextHeight(" ")
YY + TextHeight(" ")
;DrawText(XX, YY, "Entrer la valeur de a: " + a)
;XX + TextWidth("Entrer la valeur de a: ")
;Valeur = StringGadget(#PB_Any, XX, YY, 40, 25, "")
;a = ValF(GetGadgetText(Valeur))
;XX = 10
;YY + TextHeight(" ")
x2 = 1
y2 = a
While (Abs(y2-x2) > 1e-8)
x2 = (x2+y2)/2
y2 = a/x2
If (x2<y2)
DrawText(XX, YY, StrF(x2) + " < racine < " + StrF(y2))
yy + TextHeight(" ")
Else
DrawText(XX, YY, StrF(y2) + " <= racine <= "+ StrF(x2))
yy + TextHeight(" ")
EndIf
Wend
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 !
Un homme doit être poli, mais il doit aussi être libre !
Re: Entrer une valeur dans une fenêtre graphique
Je ne comprends pas où est le problème. Peut-être une absence actuelle de surveillance de l'évolution de la valeur?
Code : Tout sélectionner
...
AncienneValeur = Valeur
Valeur = ValF(GetGadgetText(...))
If Valeur <> AncienneValeur
; exécution de l'algo
EndIf
...
- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Entrer une valeur dans une fenêtre graphique
ça j'ai comprisMicoute a écrit :j'aimerais faire entrer une valeur, par exemple dans un StringGadget
Quel est ta définition de la fenêtre graphique ? Par quoi elle est représentée ?Micoute a écrit : dans une fenêtre graphique.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: Entrer une valeur dans une fenêtre graphique
Je ne suis pas sûr d'avoir compris, mais je crois qu'il veut une GUI pour rentrer un nombre alors qu'il est dans un plein écran graphique.
Il y a deux méthodes pour écrire des programmes sans erreurs. Mais il n’y a que la troisième qui marche.
Version de PB : 6.00LTS - 64 bits
Version de PB : 6.00LTS - 64 bits
Re: Entrer une valeur dans une fenêtre graphique
Code : Tout sélectionner
KeyboardInput()
(et bonjour Fig aussi!)
Re: Entrer une valeur dans une fenêtre graphique
Bonjour à tous et merci pour vos réponses.
J'ai bidouillé un truc et ça ne marche pas trop mal
Echap pour sortir
J'ai bidouillé un truc et ça ne marche pas trop mal
Code : Tout sélectionner
;racine par la méthode de babylone
;- Initialisations
InitSprite()
InitKeyboard()
InitMouse()
Enumeration
;Fenetres
#Fenetre_principale
;Actions
#Sortie
#Aucune
;Autres
EndEnumeration
Global Police =FontID(LoadFont(#PB_Any, "Brush Script MT", 20, #PB_Font_Italic))
Global x2.f, y2.f, a.f = 17592186044416
Global.i XX = 10, YY = 0, Valeur
Global Texte$, resultat$
ExamineDesktops() : Global Largeur_Ecran = DesktopWidth(0)+5, Hauteur_Ecran = DesktopHeight(0)+10, Profondeur = DesktopDepth(0)
Global x, y, Titre.s = "", h_Fenetre
;Largeur_Ecran-5 : Hauteur_Ecran-10
Declare A_la_ligne()
Declare A_la_suite(Texte.s)
;
; ouvrir une fenêtre maximisée de la même taille que le bureau et sans bordure
;
h_Fenetre = OpenWindow(#Fenetre_principale, 0, 0, Largeur_Ecran, Hauteur_Ecran, Titre, #PB_Window_BorderLess)
;
; ouvrir un écran de la même taille que la fenêtre
;
OpenWindowedScreen(h_Fenetre, 0, 0, Largeur_Ecran, Hauteur_Ecran, 0, 0, 0, #PB_Screen_SmartSynchronization)
ClearScreen($FF7272)
ShowCursor_(1)
;-Entrée de la valeur de a
Repeat
FlipBuffers()
ExamineKeyboard()
; Efface le dernier caractère si la touche 'Back' est appuyée
;
If KeyboardReleased(#PB_Key_Back)
Texte$ = Left(Texte$, Len(Texte$)-1)
Else
resultat$=KeyboardInkey()
If FindString("1234567890.", resultat$) ; Ajouter vos propres caractères valides ici
Texte$ + resultat$
EndIf ; Ajouter le nouveau texte à l'actuel (le cas échéant)
EndIf
; Affiche le résultat
;
If StartDrawing(ScreenOutput())
DrawingMode(#PB_2DDrawing_Transparent)
FrontColor(RGB(128, 255, 0))
DrawText(20, 20, "Entrez la valeur de a:")
DrawText(170, 20, Texte$)
StopDrawing()
EndIf
Until KeyboardPushed(#PB_Key_Return)
ClearScreen($FF7272)
StartDrawing(ScreenOutput())
;- début de l'affichage
x=0 : y = 0 : BackColor(Point(0, 0))
DrawingFont(Police)
DrawingMode(#PB_2DDrawing_AlphaChannel)
a = ValF(Texte$)
DrawText(X, Y, "Racine carrée par la méthode de Babylone")
Y + TextHeight(" ")
DrawText(X, Y, "Racine de " + StrF(a))
Y + TextHeight(" ")
Y + TextHeight(" ")
x2 = 1
y2 = a
While (Abs(y2-x2) > 1e-8)
x2 = (x2+y2)/2
y2 = a/x2
If (x2<y2)
DrawText(X, Y, StrF(x2) + " < racine < " + StrF(y2))
y + TextHeight(" ")
ElseIf x2 = y2
DrawText(X, Y, "racine = " + StrF(y2))
y + TextHeight(" ")
Else
DrawText(X, Y, StrF(y2) + " <= racine <= "+ StrF(x2))
y + TextHeight(" ")
EndIf
Wend
StopDrawing()
;- gestion des événements en boucle sans fin
Global action.i = #Aucune
Repeat
Global Evenement = WindowEvent()
Select Evenement
Case #PB_Event_CloseWindow
action = #Sortie
Case 0
;
; il n'y a pas d'événement, donc faisons nos trucs graphiques
ExamineKeyboard()
If KeyboardPushed(#PB_Key_Escape)
action = #Sortie
EndIf
ExamineMouse()
If MouseButton(#PB_MouseButton_Left) <> 0
action = #Sortie
EndIf
If MouseButton(#PB_MouseButton_Middle) <> 0
action = #Sortie
EndIf
If MouseButton(#PB_MouseButton_Right) <> 0
action = #Sortie
EndIf
;
; et montrons les choses sur l'écran
;
FlipBuffers()
EndSelect
Until action = #Sortie
;- fermeture de l'écran & de la fenêtre en douceur
CloseScreen()
CloseWindow(#Fenetre_principale)
;}
Procedure A_la_ligne()
y + TextHeight(" ")
ProcedureReturn y
EndProcedure
Procedure A_la_suite(Texte.s)
X + TextWidth(Texte)
ProcedureReturn X
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 6.20 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: [Résolu] Entrer une valeur dans une fenêtre graphique
Bonjour Ollivier.
Bonjour à tous.
Je crois que depuis peu, on peut ouvrir un écran 3d avec ogre, afficher ses sprites (2d) etc... et accéder à une gui élémentaire avec la librairie windows3()...
Bon je n'ai jamais essayé. Personnellement j'utilise un sprite qui représente la fenêtre et je gère tout moi-même; saisis, clics sur les boutons etc...

Bonjour à tous.

Je crois que depuis peu, on peut ouvrir un écran 3d avec ogre, afficher ses sprites (2d) etc... et accéder à une gui élémentaire avec la librairie windows3()...
Bon je n'ai jamais essayé. Personnellement j'utilise un sprite qui représente la fenêtre et je gère tout moi-même; saisis, clics sur les boutons etc...
Il y a deux méthodes pour écrire des programmes sans erreurs. Mais il n’y a que la troisième qui marche.
Version de PB : 6.00LTS - 64 bits
Version de PB : 6.00LTS - 64 bits
Re: [Résolu] Entrer une valeur dans une fenêtre graphique
@Fig
Idem. Mais l'écran graphique natif a trop de contraintes: essaie de tirer le listing des fonctions du compilateur en mode Stand-by. Mais avant, sauvegarde tous tes documents en cours sur l'ordinateur, parce que l'effet est "pointu"...
Là, on ne peut plus se plaindre: canvas et OpenGL en natif, Fred a mis le paquet pour que ça marche...
[Edit] Je viens de tester et ça crash pas. J'ai dû looper un épisode...
Idem. Mais l'écran graphique natif a trop de contraintes: essaie de tirer le listing des fonctions du compilateur en mode Stand-by. Mais avant, sauvegarde tous tes documents en cours sur l'ordinateur, parce que l'effet est "pointu"...
Là, on ne peut plus se plaindre: canvas et OpenGL en natif, Fred a mis le paquet pour que ça marche...
[Edit] Je viens de tester et ça crash pas. J'ai dû looper un épisode...