Ouvrir une fênettre modale sans utiliser Case ?

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Joker
Messages : 19
Inscription : sam. 16/août/2008 11:13

Ouvrir une fênettre modale sans utiliser Case ?

Message 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).
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Message 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
Joker
Messages : 19
Inscription : sam. 16/août/2008 11:13

Message par Joker »

Ok merci :D
Et sinon pas moyen de créer une fenêtre modale avec If et Else ? :?
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

..
Dernière modification par Backup le mar. 19/août/2014 12:46, modifié 1 fois.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

..
Dernière modification par Backup le mar. 19/août/2014 12:46, modifié 1 fois.
djmcg
Messages : 139
Inscription : sam. 28/août/2004 6:37

Message 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
:)
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message 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
djmcg
Messages : 139
Inscription : sam. 28/août/2004 6:37

Message 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
Joker
Messages : 19
Inscription : sam. 16/août/2008 11:13

Message par Joker »

Merci pour tes codes,Dobro :)
Ca marche à merveille :D
Joker
Messages : 19
Inscription : sam. 16/août/2008 11:13

Message 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... :?
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message 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 !) :)
Répondre