FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» PanExpress : l'éditeur Panoramic avec création d'objet
par Marc Aujourd'hui à 1:24

» Demande pour Jack concernant PanExpress
par Marc Hier à 23:56

» Calculatrice
par joeeee2017 Hier à 9:35

» EPP_V01 éditeur pour Panoramic
par Jean Claude Hier à 8:51

» Planétarium virtuel.
par Jean Claude Lun 17 Sep 2018 - 18:14

» Petit coucou en passant !
par Minibug Dim 16 Sep 2018 - 15:03

» bug SEVERE fnc+sub : variables globales corrompus
par silverman Dim 16 Sep 2018 - 13:38

» Verrouiller un form en avant plan
par silverman Dim 16 Sep 2018 - 12:50

» Fin de l'aventure.
par Pedro Alvarez Sam 15 Sep 2018 - 18:16

» Demande d'explications Sur File_Write & File_writeln
par Jack Sam 15 Sep 2018 - 17:26

» MEMO avec des possibilités de commande
par Oscaribout Mer 12 Sep 2018 - 1:06

» La théorie du chaos
par jean_debord Mar 11 Sep 2018 - 9:30

» Orbites de l’ensemble de Mandelbrot
par Jean Claude Lun 10 Sep 2018 - 21:08

» Version instantanée V 0.9.29i2 du 4/09/2018
par silverman Mer 5 Sep 2018 - 10:15

» Plantage lors de l'exécution de EXIT_SUB
par Jack Lun 3 Sep 2018 - 18:59

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Septembre 2018
LunMarMerJeuVenSamDim
     12
3456789
10111213141516
17181920212223
24252627282930
CalendrierCalendrier

Partagez | 
 

  Création et gestion d’un livre

Aller en bas 
AuteurMessage
papydall

avatar

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

MessageSujet: Création et gestion d’un livre    Jeu 8 Mar 2018 - 14:43

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 ============================================================================
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
papydall

avatar

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

MessageSujet: Re: Création et gestion d’un livre    Jeu 8 Mar 2018 - 15:25

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 ============================================================================
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
papydall

avatar

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

MessageSujet: Re: Création et gestion d’un livre    Ven 9 Mar 2018 - 17:46

Sur un autre post

Jicehel a écrit:
Ce sujet que j'avais en tête m'est revenu avec le livre de Papydall …

J’avais cru qu’on a perdu le goût de lire des livres ! Sad
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Jicehel

avatar

Nombre de messages : 5929
Age : 46
Localisation : 77500
Date d'inscription : 18/04/2011

MessageSujet: Re: Création et gestion d’un livre    Sam 10 Mar 2018 - 12:36

Mais non mais non Papydall même si je t'avoue que les seuls livres que je lis depuis près de 2 ans sont des BD (à quelques livres prêt) mais c'est plutôt par manque de temps et par ce que les jeux en prennent bcp ...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




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

Revenir en haut Aller en bas
 
Création et gestion d’un livre
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» création d' une image pour tagger
» Livre d'or
» création de bannières
» Gestion des cantons en mode hors ligne
» Redimensionner une PictureBox en VB ?

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: