Page 1 sur 1
Re: Fenetre Modal
Publié : mar. 23/févr./2016 15:26
par falsam
Une fenêtre modale ce n'est pas ça Spock. Une fenêtre modale est une fenêtre qui se superpose à une autre et qui contient un bouton ou un événement pour la fermer.
Ce n'est pas ce que fait ton code.
Exemple de fenêtre modale
Code : Tout sélectionner
Procedure ModalWindow()
OpenWindow(1, 0, 0, 300, 200, "Fenetre modale", #PB_Window_SystemMenu | #PB_Window_WindowCentered, WindowID(0))
DisableWindow(0, #True)
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
CloseWindow(1)
DisableWindow(0, #False)
Break
EndSelect
ForEver
EndProcedure
OpenWindow(0, #PB_Ignore, #PB_Ignore, 640, 480, "Main", #PB_Window_SystemMenu)
ButtonGadget(0, 400, 200, 150, 30, "Ouvre la fenetre modale")
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
Case #PB_Event_Gadget
If EventGadget() = 0
ModalWindow()
EndIf
EndSelect
ForEver
Re: Fenetre Modal
Publié : mar. 23/févr./2016 16:23
par Anonyme2
Je suis presque d'accord avec Spock sauf que l'on ne devrait pas pouvoir donner le focus à la fenêtre principale, seuls sont pris en compte les événements de la fenêtre 0 dans ce cas, il faut donc un bouton ou un moyen de fermer cette fenêtre avant d'accéder à la fenêtre 1.
Donc d'accord avec Falsam
Je ne suis pas contrariant
J'utilise la croix de la fenêtre modale
Fenêtre modale Wikipédia
https://fr.wikipedia.org/wiki/Fen%C3%AAtre_modale
Code : Tout sélectionner
OpenWindow(1, 0, 0, 319, 185, "Fenetre principale",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
OpenWindow(0, 0, 0, 219, 85, "Fenetre modale",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
SetWindowLong_(WindowID(0),#GWL_EXSTYLE,GetWindowLong_(WindowID(0),#GWL_EXSTYLE)|#WS_EX_TOOLWINDOW)
ResizeWindow(0,#PB_Ignore,#PB_Ignore,220,100); : ShowWindow_(WindowID(0),#SW_SHOW)
EnableWindow_(WindowID(1), 0) ; <----- voila ce qui rend modal ! :D
EnableWindow_(WindowID(0), 1) ; <----- voila ce qui rend modal ! :D
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Select EventWindow()
Case 0
EnableWindow_(WindowID(1), 1)
CloseWindow(0)
Case 1
Break
EndSelect
EndSelect
ForEver
On peut remplacer
par
comme le code de Falsam
Re: Fenetre Modal
Publié : mer. 24/févr./2016 9:23
par Mesa
Que les débutants en programmation, étudient l'excellent code de falsam (plus haut).
WIKIPEDIA: Fenêtre modale
Une fenêtre modale est, dans une interface graphique, une fenêtre qui prend le contrôle total du clavier et de l'écran. Elle est en général associée à une question à laquelle il est impératif que l'utilisateur réponde avant de poursuivre, ou de modifier quoi que ce soit.
Voir ici
https://fr.wikipedia.org/wiki/Fen%C3%AAtre_modale pour les types et le rôle des fenêtres modales.
Le messagerequester est une fenêtre modale:
Code : Tout sélectionner
;-----> AJOUT
MessageRequester("Votre attention SVP ! ! !", "MessageRequester est une fenêtre modale")
;code falsam
Procedure ModalWindow()
OpenWindow(1, 0, 0, 300, 200, "Fenetre modale", #PB_Window_SystemMenu | #PB_Window_WindowCentered, WindowID(0))
DisableWindow(0, #True)
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
CloseWindow(1)
DisableWindow(0, #False)
Break
EndSelect
ForEver
EndProcedure
OpenWindow(0, #PB_Ignore, #PB_Ignore, 640, 480, "Main", #PB_Window_SystemMenu)
ButtonGadget(0, 400, 200, 150, 30, "Ouvre la fenetre modale")
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
Case #PB_Event_Gadget
If EventGadget() = 0
ModalWindow()
EndIf
EndSelect
ForEver
M.
Re: Fenetre Modal
Publié : mer. 24/févr./2016 14:49
par Anonyme2
Spock a écrit :Mesa a écrit :Que les débutants en programmation, étudient l'excellent code de falsam (plus haut).
ce qui par deduction veut dire que les autres codes sont de la merde !
Ha, quel vilain ce mesa

Re: Fenetre Modal
Publié : mer. 24/févr./2016 15:47
par Ollivier
Michael Douglas a écrit :une fenetre modal c'est une fenetre ou on bloque les events !!
Alors c'était dû à ça, ma grosse prise de tête en solitaire il y a 7 ans
dans cet ancien sujet pour des fenêtres "modales" (requesters) non compatibles avec les threads... Quand je programmais deux alarmes (ou plus que deux) trop proches en temps l'une de l'autre, les requêtes devenaient ingérables, d'où une reprogrammation perso des requêtes "message" et "input".
Re: Fenetre Modal
Publié : jeu. 25/févr./2016 9:01
par Mesa
une fenetre modal c'est une fenetre ou on bloque les events !!
C'est faux et archi faux. Comment pourrait-on fermer une fenêtre dans ce cas ! ?
Tu induis en erreur les vrais débutants.
ce qui par deduction veut dire que les autres codes sont de la merde !
Je n'ai jamais dit ça.
Par contre, tes déductions...
M.
Re: Fenetre Modal
Publié : jeu. 25/févr./2016 9:15
par Mesa
@ollivier: En effet, par définition, la "modalité" et les thread ne vont pas bien ensemble.
Disons, qu'on se lance dans des problèmes inutiles, comme tu l'as dit.
WIKIPEDIA: Fenêtre modale
Une fenêtre modale est, dans une interface graphique, une fenêtre qui prend le contrôle total du clavier et de l'écran. Elle est en général associée à une question à laquelle il est impératif que l'utilisateur réponde avant de poursuivre, ou de modifier quoi que ce soit.
M.
PS: Mes interventions, n'ont qu'un seul but: au hasard d'un thread, pointer du doigt des pièges de programmation afin d'aider le débutant et de l'encourager à poursuivre en programmation. Si vous n’êtes pas débutant, merci de ne prend les prendre en compte.
Re: Fenetre Modal
Publié : jeu. 25/févr./2016 10:34
par Ar-S
Spock a écrit :
certes , au lieu de
une fenetre modal c'est une fenetre ou on bloque les events !!
j'aurai du ecrire :
une fenetre modal c'est une fenetre ou on bloque les events des autres fenetres !!
Oui je pense que la confusion vient de là.
Re: Fenetre Modal
Publié : mer. 09/mars/2016 20:02
par Jacobus
Salut les gros !
Je vois que même après des siècles d'absence je retrouve les mêmes chamailleries, avec les mêmes potos, c'est cool

Re: Fenetre Modal
Publié : jeu. 10/mars/2016 6:12
par Anonyme2
Jacobus a écrit :Salut les gros !
Tu m'as démasqué
Salut Jacobus, vraiment content de lire un peu
Ca faisait un moment
Re: Fenetre Modal
Publié : jeu. 10/mars/2016 9:39
par Ar-S
Hey

un nom sortie du passé. ça fait plaisir !
Bonjour Jacobus

Re: Fenetre Modal
Publié : jeu. 10/mars/2016 10:47
par Kwai chang caine
Le saumon......la riviere.....la source .....

Re: Fenetre Modal
Publié : ven. 11/mars/2016 8:00
par Jacobus
Kwai chang caine a écrit :Le saumon......la riviere.....la source .....

Bah, c'est le printemps, j'ai la queue qui frétille...
Re: Fenetre Modal
Publié : lun. 14/mars/2016 12:01
par Kwai chang caine