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 :D
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, :lol:

Je ne connais pas encore suffisamment PureBasic pour m'en sortir. :oops:
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 :D

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 !) :)