OpenWindowedScreen()
OpenWindowedScreen()
il n'y a pas de moyen de bouger l'ecran en Fenetre !! ( WindowedScreen() )
on peut bouger les fenetres : ResizeWindow()
on peut bouger les Gadgets : ResizeGadget()
mais pour le OpenWindowedScreen() que dalle !!
alors meme qu'il est en principe prévu pour tourner avec des interfaces "Gadgeté"
que ces gadgets peuvent etre cachés , bougés, ajoutés, enlevés .....
pour le Screen ... rien ! me trompais-je ?
j'ai des gadgets a gauche en colonne et le screen a droite ...
on peut modifier la taille de la fenetre , mais si on vire les gadgets a gauche... , le Screen lui ne se met pas a gauche sur la fenetre ...
il reste a la meme place que lorsqu'on l'a créé !du coup , il reste un vide a gauche .....
bref on ne peut pas bouger ce satané Screen APRES Creation !! c'est balot ...
ps:
en l'occurence, j'aimerai ne pas avoir a tout repasser sous CanvasGadget .. (il ne gere pas l'autostrech.. et j'en ai besoin )
on peut bouger les fenetres : ResizeWindow()
on peut bouger les Gadgets : ResizeGadget()
mais pour le OpenWindowedScreen() que dalle !!
alors meme qu'il est en principe prévu pour tourner avec des interfaces "Gadgeté"
que ces gadgets peuvent etre cachés , bougés, ajoutés, enlevés .....
pour le Screen ... rien ! me trompais-je ?
j'ai des gadgets a gauche en colonne et le screen a droite ...
on peut modifier la taille de la fenetre , mais si on vire les gadgets a gauche... , le Screen lui ne se met pas a gauche sur la fenetre ...
il reste a la meme place que lorsqu'on l'a créé !du coup , il reste un vide a gauche .....
bref on ne peut pas bouger ce satané Screen APRES Creation !! c'est balot ...
ps:
en l'occurence, j'aimerai ne pas avoir a tout repasser sous CanvasGadget .. (il ne gere pas l'autostrech.. et j'en ai besoin )
Re: OpenWindowedScreen()
Tiens, Dobro, j'ai la solution à ton problème
Mais je pense que cet usage de OpenWindowedScreen() devrait être documenté !
J'ai essayé rapidement, et ça marche chez moi, sans planter...
Au cas ou : clique sur la fenetre avec le bouton droit de la souris pour redimensionner le gadget, et le bouton gauche pour le déplacer !
Mais je pense que cet usage de OpenWindowedScreen() devrait être documenté !
Code : Tout sélectionner
InitSprite()
OpenWindow(0, 0, 0, 800, 600, "Bouton Gauche pour déplacer, Bouton droit pour redimensionner ;)", #PB_Window_ScreenCentered | #PB_Window_SystemMenu)
ContainerGadget(0, 50, 50, 100,100)
OpenWindowedScreen(GadgetID(0), 0, 0, 100, 100, #True, 0, 0)
balle.POINT\x = 25
balle\y = 50
vitesse.POINT\x = 2
vitesse\y = 1
Repeat
event = WindowEvent()
balle\x + vitesse\x
balle\y + vitesse\y
If balle\x < 5 Or balle\x > 95 : vitesse\x = -vitesse\x : EndIf
If balle\y < 5 Or balle\y > 95 : vitesse\y = -vitesse\y : EndIf
If event = #WM_LBUTTONUP
ResizeGadget(0, WindowMouseX(0), WindowMouseY(0), #PB_Ignore, #PB_Ignore)
EndIf
If event = #WM_RBUTTONUP
ResizeGadget(0, #PB_Ignore, #PB_Ignore, WindowMouseX(0) - GadgetX(0), WindowMouseY(0) - GadgetY(0))
EndIf
ClearScreen(0)
If StartDrawing(ScreenOutput())
Circle(balle\x, balle\y, 5, #Red)
StopDrawing()
EndIf
FlipBuffers()
Until event = #PB_Event_CloseWindow
Au cas ou : clique sur la fenetre avec le bouton droit de la souris pour redimensionner le gadget, et le bouton gauche pour le déplacer !
_________________________________________________
Mon site : CeriseCode (Attention Chantier perpétuel )
Mon site : CeriseCode (Attention Chantier perpétuel )
Re: OpenWindowedScreen()
Ça marche mieux comme ça avec PB 5.10b2 et bravo pour ton code
Code : Tout sélectionner
InitSprite()
OpenWindow(0, 0, 0, 800, 600, "Bouton Gauche pour déplacer, Bouton droit pour redimensionner ;)", #PB_Window_ScreenCentered | #PB_Window_SystemMenu)
ContainerGadget(0, 50, 50, 100,100)
OpenWindowedScreen(GadgetID(0), 0, 0, 100, 100, #True, 0, 0)
balle.POINT\x = 25
balle\y = 50
vitesse.POINT\x = 2
vitesse\y = 1
Repeat
event = WindowEvent()
balle\x + vitesse\x
balle\y + vitesse\y
If balle\x < 5 Or balle\x > 95 : vitesse\x = -vitesse\x : EndIf
If balle\y < 5 Or balle\y > 95 : vitesse\y = -vitesse\y : EndIf
If event = #PB_Event_LeftClick ; #WM_LBUTTONUP
ResizeGadget(0, WindowMouseX(0), WindowMouseY(0), #PB_Ignore, #PB_Ignore)
EndIf
If event = #PB_Event_RightClick ; #WM_RBUTTONUP
ResizeGadget(0, #PB_Ignore, #PB_Ignore, WindowMouseX(0) - GadgetX(0), WindowMouseY(0) - GadgetY(0))
EndIf
ClearScreen(0)
If StartDrawing(ScreenOutput())
Circle(balle\x, balle\y, 5, #Red)
StopDrawing()
EndIf
FlipBuffers()
Until event = #PB_Event_CloseWindow
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: OpenWindowedScreen()
excellent !
j'avais pourtant essayé le container ...
j'avais surement du le poser au mauvais endroit
bon je te remercie, tu viens de donner un sacré coup de pouce a Pure_Anaglyphe
Merci a vous deux
j'avais pourtant essayé le container ...
j'avais surement du le poser au mauvais endroit
bon je te remercie, tu viens de donner un sacré coup de pouce a Pure_Anaglyphe
Merci a vous deux
Re: OpenWindowedScreen()
ha oui !! je viens de comprendre pourquoi pour moi ça ne marchait pas
je mettais entre
ContainerGadget(#container....)
OpenWindowedScreen(WindowID(#Window) , 1, 1, X_ecran, y_ecran, 1,50, 50)
et CloseGadgetList()
mais .. mon WindowedScreen() etait toujour asservi a la fenetre WindowID(#Window)
en fait il faut l'asservir au Container !!
je mettais entre
ContainerGadget(#container....)
OpenWindowedScreen(WindowID(#Window) , 1, 1, X_ecran, y_ecran, 1,50, 50)
et CloseGadgetList()
mais .. mon WindowedScreen() etait toujour asservi a la fenetre WindowID(#Window)
en fait il faut l'asservir au Container !!
hum ! il faut ajouter ça dans la Doc !! Merci Graph100OpenWindowedScreen(GadgetID(0), 0, 0, 100, 100, #True, 0, 0) ; ATTENTION , ici on assservi le Screen au Container
Re: OpenWindowedScreen()
Par contre, ça m'étonnerais grandement que ça fonctionne sur les autre OS ! Il faudrait vérifier, mais à mon avis ça fonctionne à cause de la façon de window pour gérer les gadgets et les fenêtres
@Micoute : merci pour la pitite correction je n'ai pas installé les bêtas, (je ne le fait pas) donc, ton code ne fonctionne pas pour les gens qui n'ont pas la bêta !
_________________________________________________
Mon site : CeriseCode (Attention Chantier perpétuel )
Mon site : CeriseCode (Attention Chantier perpétuel )
Re: OpenWindowedScreen()
C'est pour cela que j'ai commenté les arguments !graph100 a écrit :
Par contre, ça m'étonnerais grandement que ça fonctionne sur les autre OS ! Il faudrait vérifier, mais à mon avis ça fonctionne à cause de la façon de window pour gérer les gadgets et les fenêtres
@Micoute : merci pour la pitite correction je n'ai pas installé les bêtas, (je ne le fait pas) donc, ton code ne fonctionne pas pour les gens qui n'ont pas la bêta !
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: OpenWindowedScreen()
Pour le coup j'ai renoncé a passer en mode Windowed / window
car apres avoir passé une partie de l'aprem a adapter le code
je me suis rendu compte que la gestion de la souris devenais du coup problematique !
les events n'etaient pas renvoyés de façon aussi net (x,y, boutons..)
meme en passant par l'Api ça devenais galere ...
car j'ai besoin de pouvoir dessiner dans le Screen , et/ ou povoir l'afficher en fenetre ou en Plein ecran ....
bref , apres moult Test , je reviens a la methode precedente : windowed dans fenetre , et plein ecran en vrais Screen
Merci quand meme l'Astuce est intéressante ..
je pense que ça devrai marcher sous Linux , car apres tout, il n'y a pas d'appel d'autres fonctions que celles de Purebasic
car apres avoir passé une partie de l'aprem a adapter le code
je me suis rendu compte que la gestion de la souris devenais du coup problematique !
les events n'etaient pas renvoyés de façon aussi net (x,y, boutons..)
meme en passant par l'Api ça devenais galere ...
car j'ai besoin de pouvoir dessiner dans le Screen , et/ ou povoir l'afficher en fenetre ou en Plein ecran ....
bref , apres moult Test , je reviens a la methode precedente : windowed dans fenetre , et plein ecran en vrais Screen
Merci quand meme l'Astuce est intéressante ..
je pense que ça devrai marcher sous Linux , car apres tout, il n'y a pas d'appel d'autres fonctions que celles de Purebasic
Re: OpenWindowedScreen()
Oui merci pour ce code.
Le canvas correspondrait pas à tes besoins ?
Le canvas correspondrait pas à tes besoins ?
~~~~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
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳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
Re: OpenWindowedScreen()
non, car la fenetre de Pure_anaglyphe peut etre redimensionnée
pour adapter au proportion d'une image ... et le mode Auto-Redimensionnement du WindowedScreen est bien pratique
et en plein ecran , ça pourrai peut etre faire ( bien que je suis pas sur qu'on puisse faire afficher des Sprites
dans un Canvas ??? ! )
mais cela me force a revoir complétement les Event relatif au touches Clavier , et souris .. j'aime pas trop refaire..
bah , j'ai surtout voulu passer en Full Windowed Screen (plein ecran aussi)
pour le calldebugger !!
car en mode plein ecran, on ne peut plus utiliser le Debugger ...
il me semble pourtant me souvenir que dans les anciennes Version (3.8x..3.9x) ont pouvais debugger sous plein ecran...?!
je trouve qu'un Debugger qui fonctionnerai sous OPENSCREEN() serai quand meme pas mal (ou j'ai encore loupé un truc ... )
pour le moment, je fais des Beep(xx,xx) pour savoir si le code passe par un endroit
et je fait des sorties de contenu de variable en utilisant le Screen ... mais c'est lourd ...
le code ci dessus est deja bien pour faire des sorties en utilisant le Windowed Screen , mais je ne l'utiliserai pas pour mon prg
pour adapter au proportion d'une image ... et le mode Auto-Redimensionnement du WindowedScreen est bien pratique
et en plein ecran , ça pourrai peut etre faire ( bien que je suis pas sur qu'on puisse faire afficher des Sprites
dans un Canvas ??? ! )
mais cela me force a revoir complétement les Event relatif au touches Clavier , et souris .. j'aime pas trop refaire..
bah , j'ai surtout voulu passer en Full Windowed Screen (plein ecran aussi)
pour le calldebugger !!
car en mode plein ecran, on ne peut plus utiliser le Debugger ...
il me semble pourtant me souvenir que dans les anciennes Version (3.8x..3.9x) ont pouvais debugger sous plein ecran...?!
je trouve qu'un Debugger qui fonctionnerai sous OPENSCREEN() serai quand meme pas mal (ou j'ai encore loupé un truc ... )
pour le moment, je fais des Beep(xx,xx) pour savoir si le code passe par un endroit
et je fait des sorties de contenu de variable en utilisant le Screen ... mais c'est lourd ...
le code ci dessus est deja bien pour faire des sorties en utilisant le Windowed Screen , mais je ne l'utiliserai pas pour mon prg
Re: OpenWindowedScreen()
sur le forum, recherche le code "WindowedScreen + GUI Eventhandling Demo - March 22, 2007",
il permet de faire tourner un openwindowscreen dans une fenêtre pb en séparant/filtrant les évenements du screen et de windows,
code pouvant être pour ogre afin de réaliser un modeleur par exemple.
Pat
il permet de faire tourner un openwindowscreen dans une fenêtre pb en séparant/filtrant les évenements du screen et de windows,
code pouvant être pour ogre afin de réaliser un modeleur par exemple.
Pat
Re: OpenWindowedScreen()
Patrick88 a écrit :sur le forum, recherche le code "WindowedScreen + GUI Eventhandling Demo - March 22, 2007",
il permet de faire tourner un openwindowscreen dans une fenêtre pb en séparant/filtrant les évenements du screen et de windows,
code pouvant être pour ogre afin de réaliser un modeleur par exemple.
Pat
oui je sais deja faire ça (et depuis longtemps )
Pure_anaglyphe utilise deja depuis le debut un windowed screen + gadget , et un mode plein ecran Screen (par appuis sur la barre d'espace )
je voulais juste avoir la possibilité de Debugger en mode Screen , alors j'ai fais une demande ici , a propos du mode WindowedScreen plein ecran/fenetre
(bref Relis le Topic , je vais pas te Reexpliquer ... )
Merci quand meme pour la Tentative d'info
Re: OpenWindowedScreen()
m'oui, c'est aussi pour ça (pas de debugger en mode screen) que je passe par ce code...
sinon, tu peux utiliser la commande "trace" comme au (bon vieux) temps du gwbasic
et si tu utilises 2 écrans ? 1 pour le screen et 1 pour le code et le debugger ?
pat
sinon, tu peux utiliser la commande "trace" comme au (bon vieux) temps du gwbasic
et si tu utilises 2 écrans ? 1 pour le screen et 1 pour le code et le debugger ?
pat
Re: OpenWindowedScreen()
Et en utilisant un Canvas comme "WindowedScreen" auquel tu attache une image dans laquelle tu fais ton dessin et que tu redimensionne selon la taille de la fenetre ?
Biensur il faudra rajouter un coef pour les positions de la souris en fonction de la taille originale et actuelle de la fenetre, mais ça doit etre jouable...
Biensur il faudra rajouter un coef pour les positions de la souris en fonction de la taille originale et actuelle de la fenetre, mais ça doit etre jouable...