Page 1 sur 1

Case 1

Publié : mar. 12/déc./2023 19:42
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...

Re: Case 1

Publié : mar. 12/déc./2023 23:48
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:

Re: Case 1

Publié : mer. 13/déc./2023 7:08
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 🙏

Re: Case 1

Publié : mer. 13/déc./2023 9:50
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:

Re: Case 1

Publié : mer. 13/déc./2023 10:40
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 ?

Re: Case 1

Publié : mer. 13/déc./2023 11:03
par Marc56
Oui.
D'où l'intérêt de faire des procédures pour pouvoir les envoyer en threads.

Re: Case 1

Publié : mer. 13/déc./2023 11:30
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... 🚩

Re: Case 1

Publié : mer. 13/déc./2023 20:58
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 ^^