FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
Les déboires de Yannick avec le compilateur... Emptypar Pedro Aujourd'hui à 8:08

» Un autre pense-bête...
Les déboires de Yannick avec le compilateur... Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Les déboires de Yannick avec le compilateur... Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Les déboires de Yannick avec le compilateur... Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Les déboires de Yannick avec le compilateur... Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Les déboires de Yannick avec le compilateur... Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Les déboires de Yannick avec le compilateur... Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Les déboires de Yannick avec le compilateur... Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Les déboires de Yannick avec le compilateur... Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Les déboires de Yannick avec le compilateur... Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Les déboires de Yannick avec le compilateur... Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Les déboires de Yannick avec le compilateur... Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Les déboires de Yannick avec le compilateur... Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Les déboires de Yannick avec le compilateur... Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Les déboires de Yannick avec le compilateur... Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le Deal du moment :
Code promo Nike : -25% dès 50€ ...
Voir le deal

 

 Les déboires de Yannick avec le compilateur...

Aller en bas 
4 participants
AuteurMessage
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Les déboires de Yannick avec le compilateur... Empty
MessageSujet: Les déboires de Yannick avec le compilateur...   Les déboires de Yannick avec le compilateur... EmptyJeu 4 Juil 2019 - 3:07

Les déboires de Yannick avec le compilateur... Captur40

Wink scratch
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Les déboires de Yannick avec le compilateur... Empty
MessageSujet: Re: Les déboires de Yannick avec le compilateur...   Les déboires de Yannick avec le compilateur... EmptyJeu 4 Juil 2019 - 5:04

Salut Yannick

Jack a écrit:
B.10 - En prévision d'une version ultérieure, le source est formé de 5 zones;
- une zone où on déclare les variables globales (zone DIM),
- une zone où on déclare les labels (zone LABEL),
- une zone où on déclare les données intégrées au programme (les DATA accessibles par READ et adressables par RESTORE et RESTORE_LABEL),
- une zone pour le programme principal (jusqu'à END),
- une zone pour les fonctions et sous-programmes.
En fait, ces zones ne sont pas visibles mais sont imposées par un système d'erreurs. On peut commencer un source en définissant un ou des labels, mais si ensuite, une ou des variables locales sont déclarées (DIM), il y a erreur, car un DIM doit être déclaré avant un LABEL, etc.





Voir ici

• Déclarer TOUS les DIM d’abord et en dehors d’un SUB. Je parle des variables et/ou des constantes globales.
• Déclarer les LABEL ensuite s’il y en a dans le programme, (toujours en dehors d’un SUB)
• Déclarer les DATA si …
• Les instructions du programme :
• L’indispensable commande END


Un petit exemple de code

Code:

rem ============================================================================
rem        Structure d’un programme pour le compilateur
rem ============================================================================
rem 1 / Déclarer TOUS les DIM d’abord et en dehors d’un SUB.
rem     Je parle des variables et/ou des constantes globales.
rem 2 / Déclarer les LABEL ensuite s’il y en a dans le programme,
rem     (toujours en dehors d’un SUB)
rem 3 / Déclarer les DATA si besoin est.
rem 4 / Viennent ensuite les instructions du programme : affectations, instructions,
rem     appels aux éventuels sous-programes (SUB et/ou FNC).
rem 5 / Terminer par la commande END (ou TERMINATE)
rem ============================================================================
rem Voici maintenant un exemple de ce que pourrait être un code
rem ============================================================================
rem &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
rem ============================================================================
' --------------- Debut des déclarations des variables et des constante globales
DIM xc,yc  : '    déclarations des variables globales et des constantes globales
' DIM toto, tata, titi, etc
' ---------------- Fin des déclarations des variables et des constantes globales
' LABEL machin, truc, bidon : ' déclarations des LABEL (pour les appels par ON_XXX
'                             ' et éventuellement par GOSUB, GOTO, RESTORE_LABEL
rem ============================================================================
' Ici on peut continuer le code séquentiellement (instruction après instruction :
' définition d'un MENU (par exemple) ou de la (les) FORM(s), et autres PICTURE,etc
' initialisations des constantes, etc.
' ou on fait appel aux sous- programmes (SUB / FNC / GOSUB)
picture 10 : full_space 10 : 2d_target_is 10 : ' GUI
xc = width_client(10)/2 : yc = height_client(10)/2 : ' initialisations des constantes
caption 0,"<ESC> pour arrêter ..."                 : ' autre commande
' suite des instructions, des commandes, ...
' ------------------------------------------------------------------------------
' Appel aux sous-progames (gestion du déroulement du programme)
Demarrer()
Connections(20)
' ------------------------------------------------------------------------------
' Ici l'indispensable commande END (ou TERMINATE).
' Obligatoire seulement s'il y a du code qui continue en-dessous (SUB, FNC, etc)
' ------------------------------------------------------------------------------
END  : ' !!!  I N D I S P E N S A B L E  !!!!
rem ================= FIN DU MODULE PRINCIPAL ==================================
' les Sous-programmes
SUB Demarrer()
    dim_local n,p : ' variables locales utilisées uniquement dans ce même S/P
    p = 10        : ' temporisation
    repeat
        for n = 30 to 3 step -1 : Connections(n) : pause p : next n
        for n = 3 to 30 :  Connections(n) : pause p : next n      
    until scancode = 27
END_SUB
rem ============================================================================
SUB Connections(n)
    dim_local t1,t2,p,r
    p = 360/n : r = 200
    degrees   : cls
    for t1 = 0 to 360 step p
        for t2 = t1+p to 360 step p
            2d_line xc+r*cos(t1),yc+r*sin(t1),xc+r*cos(t2),yc+r*sin(t2)
        next t2
    next t1
END_SUB
rem ============================================================================
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

Les déboires de Yannick avec le compilateur... Empty
MessageSujet: Re: Les déboires de Yannick avec le compilateur...   Les déboires de Yannick avec le compilateur... EmptyJeu 4 Juil 2019 - 8:05

Bonjour à tous,

@Papydall,

Ton code fonctionne bien, mais il reste un petit problème.
Pour sortir de ton programme on doit l'arrêter avec la touche [Esc] (Echape) du clavier ET ensuite fermer par la croix rouge du FORMulaire. Tout ça est normal.
Le problème c'est que l'exécutable créer avec le compilateur reste en processus dans le gestionnaire des taches une fois qu'il est fermé.

Je pense que c'est un bug du compilateur, j'attends l'avis de Jack...

En attendant, il y a une solution: modifier le SUB Demarrer() comme suit.

Code:
SUB Demarrer()
    dim_local n,p : ' variables locales utilisées uniquement dans ce même S/P
    p = 10        : ' temporisation
    repeat
        for n = 30 to 3 step -1 : Connections(n) : pause p : next n
        for n = 3 to 30 :  Connections(n) : pause p : next n     
    until scancode = 27
    TERMINATE
END_SUB

OU ajouter un sous-programme "Fin:" appelé par ON_CLOSE 0,Fin

A+
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Les déboires de Yannick avec le compilateur... Empty
MessageSujet: re   Les déboires de Yannick avec le compilateur... EmptyJeu 4 Juil 2019 - 11:41

Cela a donc changé.
La dernière fois que j' ai demandé, on m' avait dit "ok pas de pb ca fonctionne"
et là, misère, cela ne fonctionne plus.
bounce  bounce  bounce

( Embarassed merci pour ta réponse Papydall )
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Les déboires de Yannick avec le compilateur... Empty
MessageSujet: re   Les déboires de Yannick avec le compilateur... EmptyVen 5 Juil 2019 - 1:54

Bon, en v'là une autre....
J' ai rendu compilo compatible mon jeu des deux font la paire.
La compilation se passe bien sauf que...
J' ai deux timer dans ce jeu et si le premier fonctionne normalement, le deuxième prend le TGV
et je me retrouve avec un dépassement du temps imparti pour résoudre la planche.

Voilà le code source (je mets tout le reste dans un zip sur mon webdav : FLP.zip).
Code:
' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
' VARIABLES
' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

' Incrémentation des objets
dim no%
' Incrémentation des timers
dim tpsM%
dim tpsJ%
' Icon library
dim Nicon%
' Variables de jeu
dim TpsMemo%
dim TpsResol%
dim LapsTime%
dim VLaps$
dim Mlaps%
dim Slaps%
dim Vmlaps$
dim Vslaps$
dim Grille%(36)
dim Skin$
dim coup%(2)
dim ncoup%
dim pcoup%
dim NumMask%
dim NbreHide%
dim Etat%

' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
' CONSTANTES
' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
' Titre et version
dim Titre$
' Dossier racine
dim Path$
' Disque
dim Disq$
' Dossier Annexes
dim DirSkin$
dim DirTemp$
' Fichiers
dim Kgf$
dim Lib$
dim Param$
' Fichiers en lecture/écriture
dim F_or%
dim F_ow%
' Objets Panoramic
dim Mm%
dim Sm%(20)
dim Pict%(36)
dim Mask%(36)
dim BtnShot%
dim TimerJeu%
dim FenCxSkin%
dim CombSkin%
dim BtnSkin%
' Objets Kgf
dim IL%
dim SNAP%

' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
' LABELS
' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

label Clic
label ClicPicture
label Chrono

' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
' DATA
' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Data "Jeu","Options","Capture","A Propos","Aide"
Data "Jouer","Arrêter","-","Quitter"
Data "Temps de Mémorisation","Temps de Résolution","Images"
Data "5 Secondes","10 Secondes","20 Secondes","30 Secondes"
Data "1 Mn","1 Mn 30","2 Mn","2 Mn 30"

' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
' MAIN
' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Init()
Gui()
end

' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
' PROCEDURES
' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

sub Init()
 dim_local v$,m%,mess1$,mess2$,i%
 
 ' Initialisation des constantes
 Titre$="Faites la paire Vs 2.0"
 application_title Titre$
 Path$=dir_current$
 if right$(Path$,1)="" : Path$=left$(Path$,len(Path$)-1) : end_if
        Path$=Path$+""
 Disq$=file_extract_disk$(Path$)
 DirSkin$=Path$+"Skin"
        DirTemp$=Disq$+"\Temp\FLP_Temp"
        Kgf$=Path$+"KGF.dll"
        Lib$=Path$+"ico.ilb"
        Param$=Path$+"Param.inf"

        no%=no%+1 : F_or%=no%
        no%=no%+1 : F_ow%=no%        
        
        no%=no%+1 : Mm%=no%
        for i%=1 to 20 : no%=no%+1 : Sm%(i%)=no% : next i%
        for i%=1 to 36 : no%=no%+1 : Pict%(i%)=no% : next i%
        for i%=1 to 36 : no%=no%+1 : Mask%(i%)=no% : next i%
        no%=no%+1       : BtnShot%=no%
        no%=no%+1 : TimerJeu%=no%
        no%=no%+1 : FenCxSkin%=no%
        no%=no%+1 : CombSkin%=no%
        no%=no%+1 : BtnSkin%=no%
        
 ' Vérification de l' intégrité des fichiers
 if dir_exists(DirSkin$)=0
 m%=message_warning_ok("Dossier :"+chr$(13)+DirSkin$+chr$(13)+"Introuvable !")
 terminate
 end_if
 
 if file_exists(Kgf$)=0
 m%=message_warning_ok("Fichier :"+chr$(13)+Kgf$+chr$(13)+"Introuvable !")
 terminate
 end_if
 
 if dir_exists(Disq$+"\Temp")=0 : dir_make Disq$+"\Temp" : end_if
 if dir_exists(DirTemp$)=0 : dir_make DirTemp$ : end_if
 
 ' Activation de la dll
 dll_on Kgf$
 
 ' Création de l' imagelist du skin
 IL% = dll_call2("CreateImageList",70,70)
 
 ' Récupération des paramètres
 if file_exists(Param$)=1
 file_open_read F_or%,Param$
 v$=file_readln$(F_or%) : TpsMemo%=val(v$)
 v$=file_readln$(F_or%) : TpsResol%=val(v$)
 v$=file_readln$(F_or%) : Skin$=v$
 file_close F_or%
 else
 TpsMemo%=30
 TpsResol%=150
 Skin$=DirSkin$+"defaut.ilb"
 end_if
 
 mess1$="Le fichier :"+chr$(13)+Skin$+chr$(13)+"est introuvable !"+chr$(13)
 mess1$=mess1$+"Vous allez jouer avec les images par défaut."

 mess2$="Désolé !"+chr$(13)+"Il n' y a aucune images disponibles."+chr$(13)+chr$(13)
 mess2$=mess2$+"Téléchargez une librairie d' images sur le site de l' auteur"+chr$(13)
 mess2$=mess2$+"et installez là dans le dossier :"+chr$(13)
 mess2$=mess2$+DirSkin$
 
 if file_exists(Skin$)=0
 if Skin$<>DirSkin$+"defaut.ilb"
 if file_exists(DirSkin$+"defaut.ilb")=1
 m%=message_information_ok(mess1$)
 Skin$=DirSkin$+"defaut.ilb"
 ChargeSkin()
 else
 m%=message_warning_ok(mess2$)
 terminate
 end_if
 else
 m%=message_warning_ok(mess2$)
 terminate
 end_if
 else
 ChargeSkin()
 end_if
end_sub

sub Gui()
 dim_local i%,x%,y%,t%,l%,vr$
 
 border_small 0
 height 0,560
 width 0,500
 top 0,(screen_y-height(0))/2
 left 0,(screen_x-width(0))/2
 
 color 0,0,128,0
 caption 0,Titre$
 
 main_menu Mm%
 for i%=1 to 5 : sub_menu Sm%(i%) : parent Sm%(i%),Mm% : next i%
 for i%=6 to 9 : sub_menu Sm%(i%) : parent Sm%(i%),Sm%(1) : next i%
 for i%=10 to 12 : sub_menu Sm%(i%) : parent Sm%(i%),Sm%(2) : next i%
 for i%=13 to 16 : sub_menu Sm%(i%) : parent Sm%(i%),Sm%(10) : next i%
 for i%=17 to 20 : sub_menu Sm%(i%) : parent Sm%(i%),Sm%(11) : next i%
 
 for i%=1 to 20 : read vr$ : caption Sm%(i%),vr$ : next i%
 
 for i%=1 to 20
 if i%>2 and i%<>8 and i%<>10 and i%<>11
   on_click Sm%(i%),Clic
 end_if
 next i%
 
 IconMenu()
 MarkMenu()
 
 t%=int((height_client(0)-430)/2)
 l%=int((width_client(0)-430)/2)
 i%=0
 for x%=1 to 6
 for y%=1 to 6
 i%=i%+1
 picture Pict%(i%)
 height Pict%(i%),70
 width Pict%(i%),70
 top Pict%(i%),t%
 left Pict%(i%),l%
 color Pict%(i%),0,0,0
 
 Picture Mask%(i%)
 height Mask%(i%),70
 width Mask%(i%),70
 top Mask%(i%),t%
 left Mask%(i%),l%
 file_load Mask%(i%),DirTemp$+"Carte_"+str$(19)+".bmp"
 
 l%=l%+72
 next y%
 l%=int((width_client(0)-430)/2)
 t%=t%+72
 next x%

 button BtnShot%
 hide BtnShot%
 height BtnShot%,24
 width BtnShot%,24
 top BtnShot%,height_client(0)-29
 left BtnShot%,width_client(0)-29
 cursor_point BtnShot%
 on_click BtnShot%,Clic
 
 timer TimerJeu%
 timer_off TimerJeu%
 timer_interval TimerJeu%,1000
 on_timer TimerJeu%,Chrono
end_sub

sub FormChoixSkin()
 dim_local i%,res%
 
 if object_exists(FenCxSkin%)=1
 show FenCxSkin%
 else
 form FenCxSkin%
 border_small FenCxSkin%
 height FenCxSkin%,90
 width FenCxSkin%,250
 top FenCxSkin%,(screen_y-height(FenCxSkin%))/2
 left FenCxSkin%,(screen_x-width(FenCxSkin%))/2
 
 color FenCxSkin%,0,128,0
 font_name FenCxSkin%,"Arial"
 font_size FenCxSkin%,8
 font_bold FenCxSkin%
 caption FenCxSkin%,"Images"
 
 combo CombSkin%
 parent CombSkin%,FenCxSkin%
 width CombSkin%,width_client(FenCxSkin%)-39
 top CombSkin%,int((height_client(FenCxSkin%)-height(CombSkin%))/2)
 left CombSkin%,5
 
 button BtnSkin%
 parent BtnSkin%,FenCxSkin%
 height BtnSkin%,24
 width BtnSkin%,24
 top BtnSkin%,int((height_client(FenCxSkin%)-height(BtnSkin%))/2)
 left BtnSkin%,width_client(FenCxSkin%)-width(BtnSkin%)-5
 cursor_point BtnSkin%
 on_click BtnSkin%,Clic
 end_if
 RempSkinList()
 res% = DLL_call2("WindowTopMost",handle(FenCxSkin%),1)
end_sub

' ! Clic Menu
Clic:
 ' Capture
 if number_click = Sm%(3)
 ' CaptureJeu()
 end_if
 
 ' A Propos
 if number_click = Sm%(4)
 end_if
 
 ' Aide
 if number_click = Sm%(5)
 end_if
 
 ' Jouer
 if number_click = Sm%(6)
 if Etat%=1
 if message_warning_yes_no("Une partie est en cours !"+chr$(13)+"Etes vous sûr de vouloir commencer"+chr$(13)+"une nouvelle partie ?")=1
 NewGame()
 end_if
 else
 NewGame()
 end_if
 end_if
 
 ' Arrêter
 if number_click = Sm%(7)
 if etat%=1
 timer_off TimerJeu%
 if message_warning_yes_no("Etes vous sûr de vouloir arrêter ?")=1
 MaskAllPicture(0)
 Etat%=0
 caption 0,Titre$
 else
 timer_on TimerJeu%
 end_if
 end_if
 end_if
 
 ' Quitter
 if number_click = Sm%(9)
 if etat%=1
 if message_warning_yes_no("Une partie est en cours !"+chr$(13)+"Etes vous sûr quitter le jeu ")=1
 etat%=0
 timer_off TimerJeu%
 caption 0,Titre$
 CleanTempDirectory()
 Quitter()
 end_if
 else
 CleanTempDirectory()
 Quitter()
 end_if
 end_if
 
 ' Choix des images
 if number_click = Sm%(12)
 if Etat%=0
 FormChoixSkin()
 end_if
 end_if
 
 ' Tps mémorisation 5 secondes
 if number_click = Sm%(13)
 TpsMemo%=5
 MarkMenu()
 SaveParam()
 end_if
 
 ' Tps mémorisation 10 secondes
 if number_click = Sm%(14)
 TpsMemo%=10
 MarkMenu()
 SaveParam()
 end_if
 
 ' Tps mémorisation 20 secondes
 if number_click = Sm%(15)
 TpsMemo%=20
 MarkMenu()
 SaveParam()
 end_if
 
 ' Tps mémorisation 30 secondes
 if number_click = Sm%(16)
 TpsMemo%=30
 MarkMenu()
 SaveParam()
 end_if
 
 ' Tps résolution 60 secondes
 if number_click = Sm%(17)
 TpsResol%=60
 MarkMenu()
 SaveParam()
 end_if
 
 ' Tps résolution 90 secondes
 if number_click = Sm%(18)
 TpsResol%=90
 MarkMenu()
 SaveParam()
 end_if
 
 ' Tps résolution 120 secondes
 if number_click = Sm%(19)
 TpsResol%=120
 MarkMenu()
 SaveParam()
 end_if
 
 ' Tps résolution 150 secondes
 if number_click = Sm%(20)
 TpsResol%=150
 MarkMenu()
 SaveParam()
 end_if
 
 ' Bouton Snapshot
 if number_click = BtnShot%
 ' TakeSnapshot()
 end_if
 
 ' Bouton de choix du skin
 if object_exists(FenCxSkin%)=1
 if number_click = BtnSkin%
 Skin$ = DirSkin$+text$(CombSkin%)+".ilb"
 ChargeSkin()
 SaveParam()
 if Etat%=0
 ReloadSkin()
 end_if
 hide FenCxSkin%
 end_if
 end_if
return
' -

' ! Clic Picture
ClicPicture:
 timer_off TimerJeu%
 FindClickedMask()
 hide Mask%(NumMask%)
 ncoup%=ncoup%+1
 coup%(ncoup%)=NumMask%
 if ncoup%=2
 pcoup%=pcoup%+1
   if grille%(coup%(1))=grille%(coup%(2))
 ncoup%=0
 coup%(1)=0
 coup%(2)=0
 NbreHide%=NbreHide%+2
 if NbreHide%=36
 timer_off TimerJeu%
 caption 0,Titre$
 message "Bravo !!!"+chr$(13)+"Vous avez gagné cette partie."+chr$(13)+str$(pcoup%)+" Joués"
 Etat%=0
 pcoup%=0
 else
 timer_on TimerJeu%
 end_if
 else
 pause 500
 show Mask%(coup%(1))
 show Mask%(coup%(2))
 ncoup%=0
 coup%(1)=0
 coup%(2)=0
 timer_on TimerJeu%
 end_if
 else
 timer_on TimerJeu%
 end_if
return
' -

' ! Chronos
Chrono:
 LapsTime%=LapsTime%-1
 if LapsTime>0
 
 Mlaps%=int(LapsTime%/60)
 Slaps%=LapsTime%-(Mlaps%*60)
 
 Vmlaps$=str$(Mlaps%)
 if len(Vmlaps$)=1 : Vmlaps$="0"+Vmlaps$ : end_if
 
 Vslaps$=str$(Slaps%)
 if len(Vslaps$)=1 : Vslaps$="0"+Vslaps$ : end_if
 
   VLaps$="00 : "+Vmlaps$+" : "+Vslaps$
   caption 0,Titre$+string$(50,chr$(32))+"Temps de jeu  "+VLaps$
 else
 timer_off TimerJeu%
 MaskAllPicture(0)
 Etat%=0
 caption 0,Titre$
 Message "Désolé !"+chr$(13)+"Le temps est écoulé, vous avez perdu la partie."
 end_if
return
' -

sub ChargeSkin()
 dim_local i%,res%,v%,bmp$
 
 res% = dll_call1("ClearImageList",IL%)
 pause 150
 res% = dll_call2("LoadImageList",IL%,adr(Skin$))
 pause 150
 for i%=1 to 19
 v%=i%-1
 bmp$ = DirTemp$+"Carte_"+str$(i%)+".bmp"
 res% = dll_call5("ExtractImageFromImageList",IL%,v%,0,0,adr(bmp$))
 next i%
end_sub

sub IconMenu()
   dim_local res%,i%,ind%

 Nicon% = dll_call2("SetMainMenuImageList",object_internal(Mm%),adr(Lib$))
 if Nicon%>0
 for i%=1 to 9
 ind%=i%-1
 if i%<>8
 res% = dll_call2("SetSubMainMenuImageIndex",object_internal(Sm%(i%)),ind%)
 end_if
 pause 50
 next i%
 res% = dll_call2("SetSubMainMenuImageIndex",object_internal(Sm%(12)),15)
 end_if
end_sub

sub MarkMenu()
 dim_local i%,res%
 
 for i%=10 to 16
 mark_off Sm%(i%)
 if Nicon%>0 and i%<>12
 res% = dll_call2("SetSubMainMenuImageIndex",object_internal(Sm%(i%)),10)
 end_if
 next i%
 res% = dll_call2("SetSubMainMenuImageIndex",object_internal(Sm%(10)),10)
 
 select TpsMemo%
 case 5
 mark_on Sm%(13)
 if Nicon%>0
 res% = dll_call2("SetSubMainMenuImageIndex",object_internal(Sm%(13)),9)
 res% = dll_call2("SetSubMainMenuImageIndex",object_internal(Sm%(10)),11)
 end_if
 case 10
 mark_on Sm%(14)
 if Nicon%>0
 res% = dll_call2("SetSubMainMenuImageIndex",object_internal(Sm%(14)),9)
 res% = dll_call2("SetSubMainMenuImageIndex",object_internal(Sm%(10)),12)
 end_if
 case 20
 mark_on Sm%(15)
 if Nicon%>0
 res% = dll_call2("SetSubMainMenuImageIndex",object_internal(Sm%(15)),9)
 res% = dll_call2("SetSubMainMenuImageIndex",object_internal(Sm%(10)),13)
 end_if
 case 30
 mark_on Sm%(16)
 if Nicon%>0
 res% = dll_call2("SetSubMainMenuImageIndex",object_internal(Sm%(16)),9)
 res% = dll_call2("SetSubMainMenuImageIndex",object_internal(Sm%(10)),14)
 end_if
 end_select
 
 for i%=17 to 20
 mark_off Sm%(i%)
 if Nicon%>0
 res% = dll_call2("SetSubMainMenuImageIndex",object_internal(Sm%(i%)),10)
 end_if
 next i%
 res% = dll_call2("SetSubMainMenuImageIndex",object_internal(Sm%(11)),10)
 
 select TpsResol%
 case 60
 mark_on Sm%(17)
 if Nicon%>0
 res% = dll_call2("SetSubMainMenuImageIndex",object_internal(Sm%(17)),9)
 res% = dll_call2("SetSubMainMenuImageIndex",object_internal(Sm%(11)),11)
 end_if
 case 90
 mark_on Sm%(18)
 if Nicon%>0
 res% = dll_call2("SetSubMainMenuImageIndex",object_internal(Sm%(18)),9)
 res% = dll_call2("SetSubMainMenuImageIndex",object_internal(Sm%(11)),12)
 end_if
 case 120
 mark_on Sm%(19)
 if Nicon%>0
 res% = dll_call2("SetSubMainMenuImageIndex",object_internal(Sm%(19)),9)
 res% = dll_call2("SetSubMainMenuImageIndex",object_internal(Sm%(11)),13)
 end_if
 case 150
 mark_on Sm%(20)
 if Nicon%>0
 res% = dll_call2("SetSubMainMenuImageIndex",object_internal(Sm%(20)),9)
 res% = dll_call2("SetSubMainMenuImageIndex",object_internal(Sm%(11)),14)
 end_if
 end_select
end_sub

sub CaptureJeu()
 SNAP% = dll_call5("CreateScreenSnapshot",1,(screen_x-width(0))/2,(screen_y-height(0))/2,width(0),height(0))
 show BtnShot%
end_sub

sub TakeSnapshot()
 dim_local f$,res%,m%
 
 f$=mid$(date$,7,4)+mid$(date$,4,2)+mid$(date$,1,2)+"_"
 f$=f$+mid$(Time$,1,2)+mid$(Time$,4,2)+mid$(Time$,7,2)+".jpg"
 f$=Path$+"Capture_"+f$

 ' message f$+chr$(13)+str$(Snap%)+chr$(13)+str$(adr(f$))
 res% = dll_call2("TakeScreenSnapshot",SNAP%,adr(f$))
 if res%<0
 m%=message_warning_ok("Désolé !"+chr$(13)+"Une erreur s' est produite, la capture a échouée.")
 end_if
 res% = dll_call1("DeleteScreenSnapshot",SNAP%)
 hide BtnShot%
end_sub

sub SaveParam()
 file_open_write F_ow%,Param$
 file_writeln F_ow%,str$(TpsMemo%)
 file_writeln F_ow%,str$(TpsResol%)
 file_writeln F_ow%,Skin$
 file_close F_ow%
end_sub

sub NewGame()
 Etat%=1
 NbreHide%=0
 LapsTime%=TpsResol%
 MaskAllPicture(0)
 Distribution()
 ShowAllPicture()
 ChronoMemo()
 if etat%=1
 MaskAllPicture(1)
 timer_on TimerJeu%
 end_if
end_sub

sub Distribution()
 dim_local i%,Nimg%,x%,nbr%,v$

 for i%=1 to 36 : Grille%(i%)=0 : next i%
 for i%=1 to 36
 repeat
 nbr%=0
 Nimg%=int(rnd(18))+1
 for x%=1 to 36
 if grille%(x%)=Nimg%
 nbr%=nbr%+1
 end_if
 next x%
 until nbr%<2
 Grille%(i%)=Nimg%
 file_load Pict%(i%),DirTemp$+"Carte_"+str$(Nimg%)+".bmp"
 file_load Mask%(i%),DirTemp$+"Carte_"+str$(19)+".bmp"
 next i%
end_sub

sub ChronoMemo()
 dim_local z%,t$,fin%

 fin%=(TpsMemo%*1000)+Number_ticks
 while Number_ticks<>fin%
 z%=fin%-Number_ticks
 if z%<0 or etat%=0 : exit_while : end_if
 if z%>1000 and z%<10000
 t$=left$(str$(z%),1)
 if len(t$)<2 : t$="0"+t$ : end_if
 else
 if z%>0 and z%<1000
 t$="01"
 else
 t$=left$(str$(z%),2)
 if len(t$)<2 : t$="0"+t$ : end_if
 end_if
 end_if
 caption 0,Titre$+string$(50,chr$(32))+"Mémorisation  00 : 00 : "+t$
 if z%=0 : exit_while : end_if
 end_while
 pause 200
 caption 0,Titre$
end_sub

sub ShowAllPicture()
 dim_local i%
 
 for i%=1 to 36
 hide Mask%(i%)
 next i%
end_sub

sub MaskAllPicture(CP%)
 dim_local i%
 
 for i%=1 to 36
 show Mask%(i%)
 if CP%=1
 cursor_point Mask%(i%)
 on_click Mask%(i%),ClicPicture
 else
 cursor_default Mask%(i%)
 off_click Mask%(i%)
 end_if
 next i%
end_sub

sub FindClickedMask()
   dim_local i%
 
 for i%=1 to 36
 if number_click=Mask%(i%)
 NumMask%=i%
 exit_for
 end_if
 next i%
end_sub

sub RempSkinList()
 dim_local a$,i%,it%

 clear CombSkin%
 dir_change DirSkin$
 a$=file_find_first$
 if file_extract_extension$(a$)=".ilb"
 a$=file_extract_name$(a$)
 item_add CombSkin%,left$(a$,len(a$)-4)
 end_if
 a$=file_find_next$
 while a$<>"_"
 if file_extract_extension$(a$)=".ilb"
 a$=file_extract_name$(a$)
 item_add CombSkin%,left$(a$,len(a$)-4)
 end_if
 a$=file_find_next$
 end_while
 file_find_close
 dir_change Path$
 
 if count(CombSkin%)>0
 for i%=1 to count(CombSkin%)
 if item_read$(CombSkin%,i%)+".ilb"=file_extract_name$(Skin$)
 it%=i%
 exit_for
 end_if
 next i%
 ' item_select CombSkin%,it%
 text CombSkin%,item_read$(CombSkin%,it%)
 end_if
end_sub

sub ReloadSkin()
 dim_local i%,img1$,img2$
 
 img2$=DirTemp$+"Carte_"+str$(19)+".bmp"
 
 for i%=1 to 36
 img1$=DirTemp$+"Carte_"+str$(grille%(i%))+".bmp"
 if grille%(i%)>0
 file_load Pict%(i%),img1$
 end_if
 file_load Mask%(i%),img2$
 next i%
end_sub

sub CleanTempDirectory()
 dim_local i%,bmp$
 
 for i%=1 to 19
 bmp$=DirTemp$+"Carte_"+str$(i%)+".bmp"
 if file_exists(bmp$)=1
 file_delete bmp$
 end_if
 next i%
 dir_remove DirTemp$
end_sub

sub Quitter()
 dim_local res%
 res% = dll_call1("KillProcessByHandle",handle(0))
end_sub
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Les déboires de Yannick avec le compilateur... Empty
MessageSujet: re   Les déboires de Yannick avec le compilateur... EmptyVen 5 Juil 2019 - 19:04

Les programmes compilés laissent un processus en cours quand ils sont fermés par la croix.
Mad
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

Les déboires de Yannick avec le compilateur... Empty
MessageSujet: Re: Les déboires de Yannick avec le compilateur...   Les déboires de Yannick avec le compilateur... EmptyVen 5 Juil 2019 - 20:00

Hé oui Yannick, c'est un problème que j'ai signalé dans ce même post (juste avant tes 3 dernières interventions) et aussi ICI.

Ce problème doit être facile à corriger pour Jack, du moins à mon avis.
Ce problème devient une galère si on ne s'est pas aperçu du phénomène, car il peut y avoir autant de processus en cours que d'essais ....

En attendant j'ai prévu une solution:
ajouter un sous-programme "Fin:" appelé par ON_CLOSE 0,Fin
Code:
Fin:
  TERMINATE
RETURN

A+
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Les déboires de Yannick avec le compilateur... Empty
MessageSujet: re   Les déboires de Yannick avec le compilateur... EmptySam 6 Juil 2019 - 1:34

Ok Jean Claude, je vais prendre cette astuce en attendant.
J' essaie de reprendre mes vieux prog en les rendant compatible pour le compilateur 
en attendant un retour peu probable de l'inspiration.
Laughing
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

Les déboires de Yannick avec le compilateur... Empty
MessageSujet: Re: Les déboires de Yannick avec le compilateur...   Les déboires de Yannick avec le compilateur... EmptySam 6 Juil 2019 - 7:40

Ah ! l'inspiration, c'est ce qu'il me manque aussi, actuellement...

Je te propose de faire un programme pour limiter le réchauffent climatique, car depuis le 15 juin c'est dur.
Pas une seule journée en dessous de 35° et la nuit à 19° minimum (à 5H), le plus souvent 22°.
C'est bien pour les jeunes, mais en vieillissant c'est plus difficile pour moi et comme je ne veux pas de clim.....

Bref !

A+
Revenir en haut Aller en bas
Minibug

Minibug


Nombre de messages : 4570
Age : 58
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Les déboires de Yannick avec le compilateur... Empty
MessageSujet: Re: Les déboires de Yannick avec le compilateur...   Les déboires de Yannick avec le compilateur... EmptySam 6 Juil 2019 - 7:59

Salut Yannick ! cheers

Ça fait plaisir de te retrouver sur le forum !
Pour l'inspiration t'inquiètes pas ça va revenir... Wink
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Contenu sponsorisé





Les déboires de Yannick avec le compilateur... Empty
MessageSujet: Re: Les déboires de Yannick avec le compilateur...   Les déboires de Yannick avec le compilateur... Empty

Revenir en haut Aller en bas
 
Les déboires de Yannick avec le compilateur...
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Problème avec le compilateur.
» Erreur...avec le compilateur.
» Problème avec le compilateur.
» Pb Button_picture avec compilateur
» Problème avec le compilateur.

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: A l'aide!-
Sauter vers: