Forum de Programmation en langage PANORAMIC


Rejoignez le forum, c’est rapide et facile

Forum de Programmation en langage PANORAMIC
Forum de Programmation en langage PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Rechercher
 
 

Résultats par :
 


Rechercher Recherche avancée

Derniers sujets
» Bonne année 2024
 Création et gestion d’un livre  EmptyLun 1 Jan - 0:25 par Papydall-Admin

» A ceux qui célèbre Noël, bonnes fêtes
 Création et gestion d’un livre  EmptyDim 24 Déc - 10:49 par Papydall-Admin

» Joyeux Noël et Bonne Année
 Création et gestion d’un livre  EmptyVen 8 Déc - 1:34 par Papydall-Admin

» Planets of the Solar System : Tilts and Spins
 Création et gestion d’un livre  EmptyLun 20 Mar - 15:43 par Papydall-Admin

» Bonne Année 2023
 Création et gestion d’un livre  EmptySam 31 Déc - 1:39 par Papydall-Admin

» Fractals - Mandelbrot
 Création et gestion d’un livre  EmptyVen 21 Aoû - 22:51 par Papydall-Admin

» Convertisseur Décimal ---> Binaire, Octal, Hexadécimal, ...
 Création et gestion d’un livre  EmptyMer 21 Nov - 1:08 par Papydall-Admin

» Balises {USER...}
 Création et gestion d’un livre  EmptyLun 19 Nov - 22:12 par Papydall-Admin

» Useful Dog
 Création et gestion d’un livre  EmptyVen 6 Avr - 14:25 par Papydall-Admin

Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  

Calendrier Calendrier

Le deal à ne pas rater :
Cartes Pokémon : la prochaine extension Pokémon sera EV6.5 Fable ...
Voir le deal

Création et gestion d’un livre

Aller en bas

 Création et gestion d’un livre  Empty Création et gestion d’un livre

Message par Papydall-Admin Jeu 8 Mar - 15:28

Code:
rem ============================================================================
rem       Création et gestion d’un livre
rem              Par Papydall          
rem ============================================================================  
rem Le programme affiche un livre et gère son ouverture et le feuilletage de
rem ses pages.
rem Avant de lancer le programme :
rem Indiquez dans procédure SUB Init() le titre du livre, le nom de l’auteur et
rem le nombre de pages du livre (lignes 33 à 35).
rem Les pages du livre créé sont numérotées, mais elles sont encore vierges
rem (des pages blanches).
rem ============================================================================  
rem Pour rédiger les contenus des différentes pages : ajoutez votre code dans
rem la procédure SUB Rediger_Pages() et les procédures suivantes
rem ============================================================================
rem Voici un exemple de livre de 6 pages toutes vierges
rem ============================================================================

Init()
GUI()
Livre(titre$,auteur$,nb_page)  

end

rem ============================================================================
SUB Init()
    label Gestion_Clic
    dim xc,yc,x,y,nb_page,i
    dim titre$,auteur$
    width 0,screen_x -100 : height 0,screen_y-100
    top 0,(screen_y - height(0))/2 : left 0, (screen_x - width(0))/2
    xc = width(0)/2 : yc = height(0)/2
    titre$ = "Exemple de livre" : ' Titre du livre           (à adapter)
    auteur$ = "Papydall"        : ' Nom de l'auteur          (à adapter)
    nb_page = 6                 : ' Nombre des pages du live (à adapter)
END_SUB
rem ============================================================================
SUB GUI()
    color 0,0,0,128
    alpha 10 : top 10,20 : left 10, xc-150 : font_bold 10 : font_size 10,24 : hide 10
    font_name 10,"arial" : font_color 10,255,255,255 : caption 10,titre$
    picture 100 : width 100,xc-100 : height 100,2*yc-150
    top 100,80 : left 100,xc-width(100)/2 : on_click 100,Gestion_Clic : hide 100
    cursor_point 100 : font_name 100,"arial" : font_bold 100 : font_size 100,34
    font_color 100,255,255,255
END_SUB
rem ============================================================================
SUB Livre(titre$,auteur$,nb_page)
    dim_local i, t$
    caption 0,"Cliquer sur le livre pour l'ouvrir"
    for i = 101 to 100+nb_page
        picture i : width i,width(100) : height i,height(100) : top i,80
        if even(i) = 0 then left i,80 : else : left i,xc+30
        on_click i,Gestion_Clic : hide i : cursor_point i
        font_bold i : font_name i,"comic sans ms" : font_size i,18
        Afficher_Page(i)
    next i
    Rediger_Pages()
    t$ = "Cliquer sur le livre pour l'ouvrir ...."
    t$ = t$ + " ou sur la croix rouge pour quitter ..."
    2d_target_is 100 : print_target_is 100
    2d_fill_color 150,100,50 : 2d_rectangle 0,0,width(100),height(100)
    2d_pen_width 5  : 2d_pen_color 250,150,25 : 2d_line 20,0,20,height(100)
    print_locate 150,050 : print titre$
    font_size 100,24 : print_locate 150,height(100)-100 : print "Auteur : " + auteur$
    show 100
END_SUB
rem ============================================================================
SUB Afficher_Page(p)  
    print_target_is p : font_color p,0,0,0 : 2d_fill_color 255,255,255
    font_size p,10 : font_name p,"comic sans ms"
    2d_target_is p : 2d_pen_color 0,0,0
    if odd(p) > 0      
       if p > 101                 : ' Si on est dans une page impaire autre que la 1ere
          2d_line 1,1,1,height(p) : ' On trace 3 traits verticaux...
          2d_line 3,1,3,height(p) : ' ... pour donner l'impression ...
          2d_line 5,1,5,height(p) : ' ... qu'on a déjà feuilleté quelques pages
       end_if
       print_locate 010,height(p)-50
    else
       if p < 100 + nb_page : ' Si on est dans une page paire autre que la dernière
          2d_line width(p)-7,1,width(p)-7,height(p) : ' On trace 3 traits verticaux ...
          2d_line width(p)-5,1,width(p)-5,height(p) : ' ... pour donner l'impression ...
          2d_line width(p)-3,1,width(p)-3,height(p) : ' qu'il reste encore d'autres pages    
       end_if
       print_locate width(p)-70,height(p)-50  
    end_if
    print "Page " + str$(p-100)    
END_SUB
rem ============================================================================
SUB Ouvrir_Livre()
    dim_local i,j,t$
    t$ = "Cliquer sur les pages pour feuilleter le livre ..."
    t$ = t$ + " ou sur la croix rouge pour quitter ..."
    for i = 100 to 100 + nb_page : off_click i : next i
    caption 0,t$
    hide 100 : 2d_target_is 0 : print_target_is 0
    2d_fill_color 150,50,20 : 2d_pen_color 10,0,0 : 2d_pen_width 5
    if even(number_click) > 0
       for i = 2*xc-50 to 30 step -5
           2d_rectangle i,60,2*xc-50,2*yc-50 : pause 1  
       next i
    else
       for i = 30 to 2*xc-50 step 5
           2d_rectangle 30,60,i,2*yc-50 : pause 1
       next i
    end_if
    for i = xc-10 to xc+10
        2d_pen_color 12.5*abs(xc-i),12.5*abs(xc-i),12.5*abs(xc-i)
        2d_line i,top(100),i,top(100) + height(100)
    next i
    2d_fill_color 255,255,255 : show 10
    for i = 101 to 100 + nb_page : Afficher_Page(i) : on_click i,Gestion_Clic : next i
END_SUB
rem ============================================================================
Gestion_Clic:
    Ouvrir_Livre()  
    i = number_click
    if i = 100             : ' On a cliqué sur le livre ?
       show 101 : show 102 : ' alors afficher la page 1 et la page 2
       return
    end_if
    if i = 101 : ' On a cliqué sur la page 1, alors on ferme le livre    
       hide 10 : hide 101 : hide 102 : show 100
       2d_target_is 0 : cls : on_click 100,Gestion_Clic      
       caption 0,"Cliquer sur le livre pour l'ouvrir ....  ou sur la croix rouge pour quitter ..."
       return
    end_if
    
    if i > 101 and i < 100 + nb_page : ' On a cliqué sur les pages entre la 2ème et l'avant dernière  
       if even(i) = 1                : ' On a cliqué sur une page dont le N° est pair ?
          show i+1 : show i+2        : ' alors, on affiche les 2 pages suivantes
       else                          : ' On a cliqué sur une page dont le N° est impair ?
          hide i : hide i+1 : show i-2 : show i-1 : ' alors, on affiche les 2 pages précédentes
       end_if    
    end_if
    
    if i = 100 + nb_page  : ' On a cliqué sur la dernière page ?
       for i = 101 to 100 + nb_page : hide i : next i : ' Alors on cache tout
       hide 10 : show 100 : 2d_target_is 0 : cls      : ' et on ferme le livre
       caption 0,"Cliquer sur le livre pour l'ouvrir ....  ou sur la croix rouge pour quitter ..."  
       on_click 100,Gestion_Clic      
    end_if
return
rem ============================================================================
' Adaptez cette procédure selon votre projet
SUB Rediger_Pages()
    Page_1()    : ' 1ère page
    Page_2()    : ' 2eme page
    ' ...       : ' etc.
    ' Page_N()  : ' dernière page
END_SUB
rem ============================================================================
SUB Page_1()
    2d_target_is 101 : print_target_is 101
    ' coder ici le contenu de la page
    ' Affichage de texte, graphique ou chargement d'images à partir de fichiers
    ' externes
  
END_SUB
rem ============================================================================
SUB Page_2()
    2d_target_is 102 : print_target_is 102
    ' Comme la Page_1
END_SUB
rem ============================================================================
' Les pages suivantes
' ...
' La dernière page
rem ============================================================================
Fichiers joints
 Création et gestion d’un livre  Attachment
Jean+de+la+Fontaine+avait+oublié+une+fable….mp4 La fable oubliéeVous n'avez pas la permission de télécharger les fichiers joints.(649 Ko) Téléchargé 4 fois


Dernière édition par Papydall-Admin le Sam 10 Mar - 12:50, édité 1 fois
Papydall-Admin
Papydall-Admin
Admin

Messages : 93
Réputation : 0
Date d'inscription : 08/09/2015
Age : 73
Localisation : MOKNINE (Tunisie)

https://papydall-panoramic.forumarabia.com

Revenir en haut Aller en bas

 Création et gestion d’un livre  Empty Re: Création et gestion d’un livre

Message par Papydall-Admin Jeu 8 Mar - 15:37

Voici un programme exemple pour créer un livre de 4 pages.
Cliquez sur le livre pour l'ouvrir.
Cliquez dans les pages pour feuilleter le livre (en avant ou en arrière)





Code:
rem ============================================================================
rem       Test de Création et gestion d’un livre
rem                  Par Papydall          
rem ============================================================================  
rem Voici un exemple de livre de 4 pages affichant une fable oubliée de Lafontaine
rem ============================================================================

Init()
GUI()
Livre(titre$,auteur$,nb_page)  

end

rem ============================================================================
SUB Init()
    label Gestion_Clic
    dim xc,yc,x,y,nb_page,i
    dim titre$,auteur$
    width 0,screen_x -100 : height 0,screen_y-100
    top 0,(screen_y - height(0))/2 : left 0, (screen_x - width(0))/2
    xc = width(0)/2 : yc = height(0)/2
    titre$ = "La fable oubliée" : ' Titre du livre           (à adapter)
    auteur$ = "Papydall"        : ' Nom de l'auteur          (à adapter)
    nb_page = 4                 : ' Nombre des pages du live (à adapter)
END_SUB
rem ============================================================================
SUB GUI()
    color 0,0,0,128
    alpha 10 : top 10,20 : left 10, xc-150 : font_bold 10 : font_size 10,24 : hide 10
    font_name 10,"arial" : font_color 10,255,255,255 : caption 10,titre$
    picture 100 : width 100,xc-100 : height 100,2*yc-150
    top 100,80 : left 100,xc-width(100)/2 : on_click 100,Gestion_Clic : hide 100
    cursor_point 100 : font_name 100,"arial" : font_bold 100 : font_size 100,34
    font_color 100,255,255,255
END_SUB
rem ============================================================================
SUB Livre(titre$,auteur$,nb_page)
    dim_local i, t$
    caption 0,"Cliquer sur le livre pour l'ouvrir"
    for i = 101 to 100+nb_page
        picture i : width i,width(100) : height i,height(100) : top i,80
        if even(i) = 0 then left i,80 : else : left i,xc+30
        on_click i,Gestion_Clic : hide i : cursor_point i
        font_bold i : font_name i,"comic sans ms" : font_size i,18
        Afficher_Page(i)
    next i
    Rediger_Pages()
    t$ = "Cliquer sur le livre pour l'ouvrir ...."
    t$ = t$ + " ou sur la croix rouge pour quitter ..."
    2d_target_is 100 : print_target_is 100
    2d_fill_color 150,100,50 : 2d_rectangle 0,0,width(100),height(100)
    2d_pen_width 5  : 2d_pen_color 250,150,25 : 2d_line 20,0,20,height(100)
    print_locate 150,050 : print titre$
    font_size 100,24 : print_locate 150,height(100)-100 : print "Auteur : " + auteur$
    show 100
END_SUB
rem ============================================================================
SUB Afficher_Page(p)  
    print_target_is p : font_color p,0,0,0 : 2d_fill_color 255,255,255
    font_size p,10 : font_name p,"comic sans ms"
    2d_target_is p : 2d_pen_color 0,0,0
    if odd(p) > 0      
       if p > 101                 : ' Si on est dans une page impaire autre que la 1ere
          2d_line 1,1,1,height(p) : ' On trace 3 traits verticaux...
          2d_line 3,1,3,height(p) : ' ... pour donner l'impression ...
          2d_line 5,1,5,height(p) : ' ... qu'on a déjà feuilleté quelques pages
       end_if
       print_locate 010,height(p)-50
    else
       if p < 100 + nb_page : ' Si on est dans une page paire autre que la dernière
          2d_line width(p)-7,1,width(p)-7,height(p) : ' On trace 3 traits verticaux ...
          2d_line width(p)-5,1,width(p)-5,height(p) : ' ... pour donner l'impression ...
          2d_line width(p)-3,1,width(p)-3,height(p) : ' qu'il reste encore d'autres pages    
       end_if
       print_locate width(p)-70,height(p)-50  
    end_if
    print "Page " + str$(p-100)    
END_SUB
rem ============================================================================
SUB Ouvrir_Livre()
    dim_local i,j,t$
    t$ = "Cliquer sur les pages pour feuilleter le livre ..."
    t$ = t$ + " ou sur la croix rouge pour quitter ..."
    for i = 100 to 100 + nb_page : off_click i : next i
    caption 0,t$
    hide 100 : 2d_target_is 0 : print_target_is 0
    2d_fill_color 150,50,20 : 2d_pen_color 10,0,0 : 2d_pen_width 5
    if even(number_click) > 0
       for i = 2*xc-50 to 30 step -5
           2d_rectangle i,60,2*xc-50,2*yc-50 : pause 1  
       next i
    else
       for i = 30 to 2*xc-50 step 5
           2d_rectangle 30,60,i,2*yc-50 : pause 1
       next i
    end_if
    for i = xc-10 to xc+10
        2d_pen_color 12.5*abs(xc-i),12.5*abs(xc-i),12.5*abs(xc-i)
        2d_line i,top(100),i,top(100) + height(100)
    next i
    2d_fill_color 255,255,255 : show 10
    for i = 101 to 100 + nb_page : Afficher_Page(i) : on_click i,Gestion_Clic : next i
END_SUB
rem ============================================================================
Gestion_Clic:
    Ouvrir_Livre()  
    i = number_click
    if i = 100             : ' On a cliqué sur le livre ?
       show 101 : show 102 : ' alors afficher la page 1 et la page 2
       return
    end_if
    if i = 101 : ' On a cliqué sur la page 1, alors on ferme le livre    
       hide 10 : hide 101 : hide 102 : show 100
       2d_target_is 0 : cls : on_click 100,Gestion_Clic      
       caption 0,"Cliquer sur le livre pour l'ouvrir ....  ou sur la croix rouge pour quitter ..."
       return
    end_if
    
    if i > 101 and i < 100 + nb_page : ' On a cliqué sur les pages entre la 2ème et l'avant dernière  
       if even(i) = 1                : ' On a cliqué sur une page dont le N° est pair ?
          show i+1 : show i+2        : ' alors, on affiche les 2 pages suivantes
       else                          : ' On a cliqué sur une page dont le N° est impair ?
          hide i : hide i+1 : show i-2 : show i-1 : ' alors, on affiche les 2 pages précédentes
       end_if    
    end_if
    
    if i = 100 + nb_page  : ' On a cliqué sur la dernière page ?
       for i = 101 to 100 + nb_page : hide i : next i : ' Alors on cache tout
       hide 10 : show 100 : 2d_target_is 0 : cls      : ' et on ferme le livre
       caption 0,"Cliquer sur le livre pour l'ouvrir ....  ou sur la croix rouge pour quitter ..."  
       on_click 100,Gestion_Clic      
    end_if
return
rem ============================================================================
SUB Rediger_Pages()
    Page_1()
    Page_2()
    Page_3()
    Page_4()
END_SUB
rem ============================================================================
SUB Page_1()
    print_target_is 101  
    font_size 101,22 : font_color 101,200,50,20  
    print_locate 100,100 : print "Jean de la Fontaine"
    print_locate 100,150 : print "avait oublié une fable ..."
    print_locate 100,200 : print "... l'oubli est réparé ..."
END_SUB
rem ============================================================================
SUB Page_2()
    font_size 102,14 : font_color 102,200,50,20
    print_target_is 102
    print_locate 100,020 : print "Le Corbeau et le Lapin"
    print_locate 100,070 : print "Le Corbeau sur un arbre perché"
    print_locate 100,100 : print "Ne foutait rien de la journée"
    print_locate 100,130 : print "Le Lapin voyant le corbeau"
    print_locate 100,160 : print "L'interpella et lui dit aussitôt :"
    print_locate 100,190 : print "Moi aussi, comme toi, puis-je m'asseoir"
    print_locate 100,220 : print "Et ne rien foutre du matin jusqu'au soir ?"
    print_locate 100,250 : print "Le Corbeau lui répondit de sa branche :"
    print_locate 100,280 : print "Bien sûr, ami à la queue blanche,"
    print_locate 100,310 : print "Dans l'herbe verte tu peux te coucher,"
    print_locate 100,340 : print "Et ainsi de la vie profiter."
    print_locate 100,370 : print "Blanc Lapin, s'assit alors par terre,"
    print_locate 100,400 : print "Et sous l'arbre resta à ne rien faire,"
    print_locate 100,430 : print "Tant et si bien qu'un renard affamé"
    print_locate 100,460 : print "Voyant ainsi le Lapin somnoler,"
    print_locate 100,490 : print "S'approcha du rongeur en silence,"
    print_locate 100,520 : print "et d'une bouchée en fit sa pitance"
                                    
END_SUB
rem ============================================================================
SUB Page_3()
    font_size 103,20 : font_color 103,200,50,20
    print_target_is 103

    print_locate 100,200 : print "Moralité"
    print_locate 100,250 : print "Pour rester assis à ne rien branler"
    print_locate 100,300 : print "Il vaut mieux être très haut placé"
END_SUB
rem ============================================================================
SUB Page_4()
    font_size 104,40 : font_color 104,200,50,20
    print_target_is 104
    print_locate 200,300 : print "F I N"
END_SUB
rem ============================================================================
Papydall-Admin
Papydall-Admin
Admin

Messages : 93
Réputation : 0
Date d'inscription : 08/09/2015
Age : 73
Localisation : MOKNINE (Tunisie)

https://papydall-panoramic.forumarabia.com

Revenir en haut Aller en bas

Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum