Case 1

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
SPH
Messages : 4945
Inscription : mer. 09/nov./2005 9:53

Case 1

Message par SPH »

Salut,

je serais tenté de charger en code un Case. Y a t'il des instructions ou une longueur max a mettre dans un Case ?

La notice laisse paraitre des exemples de case non chargé de beaucoup de code...

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
case
Messages : 1546
Inscription : lun. 10/sept./2007 11:13

Re: Case 1

Message par case »

je serais tenté de charger en code un Case. Y a t'il des instructions ou une longueur max a mettre dans un Case ?

La notice laisse paraitre des exemples de case non chargé de beaucoup de code...
j'ai rien compris a ta demande,

qu'apelle tu un case ?
est-ce un

Code : Tout sélectionner

select 
  case trucmuche
endsele
qu'entend tu par charger en code un case ?


j'ai vraiment rien compris a ta demande :mrgreen:
ImageImage
Avatar de l’utilisateur
SPH
Messages : 4945
Inscription : mer. 09/nov./2005 9:53

Re: Case 1

Message par SPH »

Code : Tout sélectionner

 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;         
Case 1
  If poly_x2(0)>0
    For sph_ii=0 To 32
      For u=-sph_ii To sph_ii
        For i=-sph_ii To sph_ii
          For sph_uu=1 To pointx(0)
            If pointx(sph_uu)=Resx+i And pointy(sph_uu)=Resy+u
              Beep_(1000,100)
              If move=0
                move=1
                move_x=Resx+i
                move_y=Resy+u
                Goto fin2
              EndIf
              If move=1
                move_x2=Resx+i 
                move_y2=Resy+u
                Goto fin46
              EndIf
            EndIf
          Next
        Next
      Next
    Next
  Else
    move=0
  EndIf
  ;;;;
  fin46:
  nb2=0
  ii=0
  While poly_y2(nb2)>0
    ii=poly_y2(nb2)
    For i=1 To poly_y2(nb2)-3  ;CORRIGE ;-ERROR?
      If poly_x2(nb2+2+i)=move_x And poly_y2(nb2+2+i)=move_y
        poly_x2(nb2+2+i)=move_x2
        poly_y2(nb2+2+i)=move_y2
        changement=1
        Beep_(1000,100)
      EndIf
    Next
    nb2+ii
  Wend
  move=0
  fin2:
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;         
Case 2
  save=1
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;         
Case 3
  polygon_on+1
  If polygon_on>=poly_x2(0)
    polygon_on=0
  EndIf
  
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;         
EndSelect

Regarde comme je charge le Case 1 ! (par rapport au case 2 et 3)
Je me demandais si il y avait une limite de taille à ne pas dépasser et s'il y avait des instructions à ne pas utiliser !?

Danke 🙏

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Marc56
Messages : 2197
Inscription : sam. 08/févr./2014 15:19

Re: Case 1

Message par Marc56 »

Déjà Goto ça devrait plus exister :lol:

Code : Tout sélectionner

                                ; Goto fin46 <- Beuark! GOTO !!!
                                ; -> Break [Level]
                                Break 6
Ensuite, une procédure c'est mieux
Non

Code : Tout sélectionner

Case 1
    If poly_x2(0)>0
        For sph_ii=0 To 32
        [...]
        
Oui

Code : Tout sélectionner

Case 1
    If poly_x2(0)>0
        WhatToDo()
    EndIf
Après pour sortir de la procédure avant la fin: ProcedureReturn suivi éventuellement d'un numéro qu'on réutilise pour la suite.

Pas de soucis pour mettre autant de lignes que tu veux, mais aux temps anciens (80') on disait que si un bloc de code dépassait une page écran (80x25 à l'époque) alors faites-en une procédure/fonction.
:wink:
Avatar de l’utilisateur
SPH
Messages : 4945
Inscription : mer. 09/nov./2005 9:53

Re: Case 1

Message par SPH »

Marc56 a écrit : mer. 13/déc./2023 9:50 Pas de soucis pour mettre autant de lignes que tu veux
tant qu'on est dans le Case, on ne traite pas les évènements. Je pense donc qu'il y a un "risque" de s'éterniser dans un Case...

Mes peurs sont fondées ?

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Marc56
Messages : 2197
Inscription : sam. 08/févr./2014 15:19

Re: Case 1

Message par Marc56 »

Oui.
D'où l'intérêt de faire des procédures pour pouvoir les envoyer en threads.
Avatar de l’utilisateur
SPH
Messages : 4945
Inscription : mer. 09/nov./2005 9:53

Re: Case 1

Message par SPH »

Marc56 a écrit : mer. 13/déc./2023 11:03 Oui.
D'où l'intérêt de faire des procédures pour pouvoir les envoyer en threads.
Ou bien de faire des procédures qui appellent régulièrement la procédure de gestion des évènements.
Je n'ai codé dans ma vie qu'un seul thread. C'est pas que je ne suis pas fan, c'est que j'en ai très peu l'occasion... 🚩

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
case
Messages : 1546
Inscription : lun. 10/sept./2007 11:13

Re: Case 1

Message par case »

sinon ajouter un waitwindowevent(0) de temps en temps empechera ton prog de 'ne plus repondre'
tout depend de ce que tu appelle s'eterniser aussi ^^
ImageImage
Répondre