Forum de Programmation en langage PANORAMIC
Rechercher
 
 

Résultats par :
 


Rechercher Recherche avancée

Mots-clés

fichiers  

Derniers sujets
» Useful Dog
Ven 6 Avr - 14:25 par Papydall-Admin

» Les Courbes de Bézier cubiques
Ven 30 Mar - 4:08 par Papydall-Admin

» Animation flash
Mer 14 Mar - 2:50 par Papydall-Admin

» Mega-Strip
Lun 12 Mar - 1:24 par Papydall-Admin

» Les oiseaux de mon jardin
Ven 9 Mar - 1:08 par Papydall-Admin

»  Création et gestion d’un livre
Jeu 8 Mar - 15:37 par Papydall-Admin

» Deux questions d’éthique
Mar 6 Mar - 1:56 par Papydall-Admin

»  La Blague Du Jour
Lun 5 Mar - 2:50 par Papydall-Admin

» Branle-Fesse
Lun 5 Mar - 2:46 par Papydall-Admin

Novembre 2018
LunMarMerJeuVenSamDim
   1234
567891011
12131415161718
19202122232425
2627282930  

Calendrier Calendrier


Création et gestion d’un livre

Aller en bas

Création et gestion d’un livre

Message par Papydall-Admin le 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
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é 1 fois


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

_________________
Invité, merci d'être passé par ici.
avatar
Papydall-Admin
Admin

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

Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com

Revenir en haut Aller en bas

Re: Création et gestion d’un livre

Message par Papydall-Admin le 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 ============================================================================

_________________
Invité, merci d'être passé par ici.
avatar
Papydall-Admin
Admin

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

Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com

Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

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