Page 1 sur 1

[RESOLU] Mais Heuuuu ou sont passés mes break ? :p

Publié : ven. 27/août/2010 12:05
par falsam
Bonjour, j'ai le message d'erreur suivant

Le nombre de break est trop important (Superieur au nombre de boucles)

avec le code ci-dessous

Code : Tout sélectionner

Enumeration
  ;handle Fenetre principale de l'application
  #mainform
  
  ;handle du menu et de ses differents items
  #mainmenu : #open : #close
EndEnumeration

Procedure Application_Start()
  OpenWindow(#mainform,0,0,500,300,"Mon application",#PB_Window_ScreenCentered | #PB_Window_SystemMenu | #PB_Window_SizeGadget)

  CreateMenu(#mainmenu,WindowID(#mainform))
  MenuTitle("Fichier") 
  MenuItem(#open,"Ouvrir")
  MenuItem(#close,"Quitter")  
EndProcedure
  
Procedure Application_Stop()
  MessageRequester("Information","L'application va se fermer. A bientot.")
  CloseWindow(#mainform)
  Break
EndProcedure

Application_Start()

Repeat
  event=WaitWindowEvent()
  Select event
      
    ;Fermeture de l'application depuis le menu
   Case #PB_Event_Menu
     If EventMenu() = #close 
       Application_Stop()
     EndIf
     
     ;Fermeture de l'applciation depuis l'icone system (Croix rouge)
    Case #PB_Event_CloseWindow
      If EventWindow() = #mainform
        Application_Stop()
     EndIf
          
  EndSelect
ForEver
Il n'est pas possible d'utiliser break dans une procédure ?

Re: Mais Heuuuu ou sont passés mes break ? :p

Publié : ven. 27/août/2010 12:19
par flaith
Mieux comme ca :

Code : Tout sélectionner

Enumeration
	;handle Fenetre principale de l'application
	#mainform
	
	;handle du menu et de ses differents items
	#mainmenu : #open : #close
EndEnumeration

Procedure Application_Start()
	OpenWindow(#mainform,0,0,500,300,"Mon application",#PB_Window_ScreenCentered | #PB_Window_SystemMenu | #PB_Window_SizeGadget)

	CreateMenu(#mainmenu,WindowID(#mainform))
	MenuTitle("Fichier") 
	MenuItem(#open,"Ouvrir")
	MenuItem(#close,"Quitter")  
EndProcedure
	
Procedure Application_Stop()
	MessageRequester("Information","L'application va se fermer. A bientot.")
	CloseWindow(#mainform)
EndProcedure

Application_Start()

Repeat
	event=WaitWindowEvent()
	Select event
			
		;Fermeture de l'application depuis le menu
		Case #PB_Event_Menu
			If EventMenu() = #close 
			  Application_Stop()
			  End
			EndIf
			
			;Fermeture de l'applciation depuis l'icone system (Croix rouge)
		Case #PB_Event_CloseWindow
			If EventWindow() = #mainform
				Application_Stop()
			EndIf
					
	EndSelect
ForEver
ou remplace ton break par un end
:mrgreen:

Re: Mais Heuuuu ou sont passés mes break ? :p

Publié : ven. 27/août/2010 12:29
par falsam
Effectivement End dans ma procédure de fin de programme est plus simple :) Merci

Re: Mais Heuuuu ou sont passés mes break ? :p

Publié : ven. 27/août/2010 14:25
par Ar-S
J'ai été grillé :o

Pour info dans la doc :
Break permet de quitter à n'importe quel moment une ou plusieurs des boucles suivantes: Repeat, For, ForEach et While.

On regarde un petit la doc ça sert toujours :mrgreen:

Re: Mais Heuuuu ou sont passés mes break ? :p

Publié : ven. 27/août/2010 15:46
par Backup
falsam a écrit :Effectivement End dans ma procédure de fin de programme est plus simple :) Merci

non ! pas de end dans une procedure... a mon avis !


d'ailleurs je vais ouvrir un topic a ce sujet !

Re: Mais Heuuuu ou sont passés mes break ? :p

Publié : ven. 27/août/2010 17:24
par Fred
Si si, on peut ! :)

Re: [RESOLU] Mais Heuuuu ou sont passés mes break ? :p

Publié : mer. 29/sept./2010 11:35
par TO7
Fred a écrit :Si si, on peut !
Puisque nous y sommes, dans le domaine des sorties a sec....
En est il de meme pour un procedurereturn au milieu d'une boucle For/Next ???
Ou bien meme d'un End dans une boucle, enfin tous ces genre de sorties, allons nous dire interdites dans certains langages !!!!