Page 1 sur 1
Ouvrir une fênettre modale sans utiliser Case ?
Publié : ven. 22/août/2008 18:38
par Joker
Salut.
A chaque fois que je veux ouvrir une fenêttre modale avec Case,je rencontre une erreur(Case without "Select").
Par exemple avec ce code :
Code : Tout sélectionner
Enumeration ;j'ai bien énuméré tous les gadgets :/
#toto
#tata
#tutu
#zksjdfzkjnf
#windaube
EndEnumeration
OpenWindow(#windaube, 227, 41, 600, 149, "Windaube1", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar ) ;pas d'erreur
If CreateMenu(#zksjdfzkjnf, WindowID(#windaube))
MenuTitle("menu")
MenuItem(#toto, "Windaube2")
Repeat : Until WaitWindowEvent()=#PB_Event_CloseWindow ;pour ne pas que la fenêtre se ferme
EndIf
Case #tutu ;là ça merde ;(
OpenWindow(#tutu, 227, 41, 600, 149, "Windaube2", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
Repeat : Until WaitWindowEvent()=#PB_Event_CloseWindow ;pour ne pas que la fenêtre se ferme
EndIf
Je ne comprend pas pourquoi ça bloque ainsi.
Existe-t-il un moyen avec If et Else ? (j'ai essayé mais j'y arrive pas).
Publié : ven. 22/août/2008 20:27
par Ar-S
La doc dit :
Code : Tout sélectionner
Syntax
Select <expression1>
Case <expression> [, <expression> [<expression> To <expression>]]
...
[Case <expression>]
...
[Default]
...
EndSelect
en gros faut dire à ton prog d'attendre un evenement qui va se passer dans la fenetre avant de lui dire "Dans le cas ..."
Code : Tout sélectionner
Enumeration ;j'ai bien énuméré tous les gadgets :/
#toto
#tata
#tutu
#zksjdfzkjnf
#windaube
EndEnumeration
OpenWindow(#windaube, 227, 41, 600, 149, "Windaube1", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar ) ;pas d'erreur
If CreateMenu(#zksjdfzkjnf, WindowID(#windaube))
MenuTitle("menu")
MenuItem(#toto, "Windaube2")
Repeat
Select WaitWindowEvent()
Case #PB_Event_Menu
Select EventMenu() ; To see which menu has been selected
Case #toto
OpenWindow(#tutu, 227, 41, 600, 149, "Windaube2", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
EndSelect
Case #PB_Event_CloseWindow
CloseWindow(#tutu)
CloseWindow(#windaube)
EndSelect
Until Quit = 1
EndIf
End
Publié : sam. 23/août/2008 10:05
par Joker
Ok merci
Et sinon pas moyen de créer une fenêtre modale avec If et Else ?

Publié : sam. 23/août/2008 10:48
par Backup
..
Publié : sam. 23/août/2008 11:16
par Backup
..
Publié : sam. 23/août/2008 12:14
par djmcg
Bonjour,
En voila une bonne idée, fenêtre Modale.
SI j'ai bien compris une fenêtre modale c'est une fenêtre par laquelle on est obligé de passé.
J'aurais voulu utiliser l'exemple mais il ne fonctionne pas sous linux.
Tu accepterais de mettre un commentaire au ligne spécifique windows pour que je puisse trouver une alternative en linux.
Je cherche aussi fenetre_mere... fenetre_child... comme y dise en anglais.
Bon je vais cotuner à me débatre avec le look de mes fenêtres.
Merci à vous.
Jean-Marie

Publié : sam. 23/août/2008 12:27
par Backup
djmcg a écrit :
Tu accepterais de mettre un commentaire au ligne spécifique windows pour que je puisse trouver une alternative en linux.
c'est l'api windows qui bloque sous linux
EnableWindow_ ( WindowID ( #Window_0 ), 0) ; <----- voila ce qui rend modal ! : D
Publié : dim. 24/août/2008 5:56
par djmcg
Merci Monsieur Dobro,
Je ne connais pas encore suffisamment PureBasic pour m'en sortir.
Chapitre remis pour étude ultérieur.
Merci et bon dimanche.
Jean-Marie
Publié : dim. 24/août/2008 11:40
par Joker
Merci pour tes codes,Dobro
Ca marche à merveille

Publié : dim. 24/août/2008 11:43
par Joker
Ah cependant il y a quelque chose qui me chiffone car quelque soit le code,quand on ferme la fenêtre Modale,la fenêtre normale disparait du premier plan...

Publié : dim. 24/août/2008 13:12
par Backup
Joker a écrit :Ah cependant il y a quelque chose qui me chiffone car quelque soit le code,quand on ferme la fenêtre Modale,la fenêtre normale disparait du premier plan...

elle ne disparrait pas !! elle est relegué derriere
c'est normal, puisque a ce moment c'est l'editeur qui reviens devant !!
mais lance le prg et baisse l'editeur dans la barre des taches, et tu verra tout ce deroule normalement (ou alors compile !)
