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
» select intégrés
Exemple de gestion des onglets en Panoramic pur Emptypar jjn4 Hier à 18:33

» Aide de PANORAMIC
Exemple de gestion des onglets en Panoramic pur Emptypar leclode Hier à 18:23

» PANORAMIC V 1
Exemple de gestion des onglets en Panoramic pur Emptypar Klaus Hier à 9:53

» Je teste PANORAMIC V 1 beta 1
Exemple de gestion des onglets en Panoramic pur Emptypar Klaus Hier à 9:52

» bouton dans autre form que 0
Exemple de gestion des onglets en Panoramic pur Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
Exemple de gestion des onglets en Panoramic pur Emptypar Klaus Lun 6 Mai 2024 - 11:41

» Gestion d'un système client-serveur.
Exemple de gestion des onglets en Panoramic pur Emptypar Klaus Lun 6 Mai 2024 - 10:23

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Exemple de gestion des onglets en Panoramic pur Emptypar Froggy One Jeu 2 Mai 2024 - 11:16

» @Jack
Exemple de gestion des onglets en Panoramic pur Emptypar Jack Mar 30 Avr 2024 - 20:40

» trop de fichiers en cours
Exemple de gestion des onglets en Panoramic pur Emptypar papydall Lun 29 Avr 2024 - 23:39

» Une calculatrice en une ligne de programme
Exemple de gestion des onglets en Panoramic pur Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
Exemple de gestion des onglets en Panoramic pur Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
Exemple de gestion des onglets en Panoramic pur Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Les maths du crocodile
Exemple de gestion des onglets en Panoramic pur Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
Exemple de gestion des onglets en Panoramic pur Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
Le Deal du moment : -39%
Ordinateur portable ASUS Chromebook Vibe CX34 Flip
Voir le deal
399 €

 

 Exemple de gestion des onglets en Panoramic pur

Aller en bas 
5 participants
AuteurMessage
Klaus

Klaus


Nombre de messages : 12293
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

Exemple de gestion des onglets en Panoramic pur Empty
MessageSujet: Exemple de gestion des onglets en Panoramic pur   Exemple de gestion des onglets en Panoramic pur EmptyLun 28 Mar 2011 - 14:13

J'ai trouvé une utilisation intéressante de l'excellent objet CONTAINER. Avec cet objet, on peut réaliser, assez simplement, des onglets à cliquer. J'avais fait un pseudo-objet TAB à insérer par #INCLUDE, mais maintenant, on peut arriver à un résultat très satisfaisant beaucoup plus simplement, à l'aide d'un objet CONTAINER pour le corps de chaque page d'onglet, et d'un bouton standard pour la partie à cliquer. Le tout, c'est de positionner les objets judicieusement, et de montrer ou cacher le container correspondant au bouton, lors d'un clic sur un bouton.

Le programme suivant montre le principe. On peut changer le nombre d'onglets (entre 1 et 10) et la largeur des onglets, par des champs de saisie. Puis un clic sur le bouton "Créer les onglets" affichera le résultat qui est fonctionnel. On peut passer d'un onglet à un autre. On peut aussi changer le nombre d'onglets et/ou leur largeur et recliquer ce bouton - l'affichage s'adaptera.

Voici le code:

Code:
' Construction d'onglets à l'aide de containers

' Ce programme montre la simulation d'onglets (TAB) à l'aide d'objets standard
' Panoramic: button et container. Les onglets à cliquer sont réalisés sous
' forme de boutons classiques juxtaposés. Les pages des onglets sont des container
' pouvant contenir les objets Panoramic associés. Chaque click sur un des boutons
' d'onglet va cacher l'onglet actif et motrer l'onglet sélectionné; de même, la
' police du libellé du bouton s'affichera en caractères gras.

' L'exemple présent montre les boutons en alignmement horizontal, au-dessus des
' pages d'onglet. De la même manière, on pourrait les placer veticalement, en
' deux pu plusieurs lignes ou colonnes, en-dessous, à gauche ou à droite des
' pages d'onglet. Seul contrainte: tout les containers représentant les pages
' d'onglet doivent avoir des dimensions et un positionnement identiques.

label montrer_onglet, cacher_onglet, click_onglet
label container_existe, creer
label creer_boutons, supprimer_boutons

dim i%, b%
dim onglet_top%, onglet_left%, onglet_height%, onglet_width%
dim onglet_n%, onglet_bwidth%, onglet_actif%

width 0,1100 : height 0,600

' paramètres fixes
onglet_top% = 100          : ' position verticale
onglet_left% = 10          : ' position horizontale
onglet_height% = 300      : ' hauteur des onglets
onglet_bwidth% = 100      : ' largeur des boutons d'onglet

alpha 1 : top 1,15 : left 1,10 : caption 1,"Nombre d'onglets:"
edit 2 : top 2,10 : left 2,100 : width 2,20 : text 2,4

alpha 3 : top 3,15 : left 3,150 : caption 3,"Largeur des onglets:"
edit 4 : top 4,10 : left 4,250 : width 4,40 : text 4,300

button 20 : top 20,40 : left 20,10 : caption 20,"Créer les onglets"
width 20,150 : on_click 20,creer

end

' ------------- routines des service

' création d'une nouvelle série d'onglets
creer:
i% = val(text$(2))
if i%<1 or i%>10
    i% = message_error_ok("Le nombre d'onglets et en-dehors des limites !")
    return
end_if
onglet_width% = val(text$(4))
gosub supprimer_boutons
onglet_n% = val(text$(2))
gosub creer_boutons

' pages d'onglet
for i%=1 to onglet_n%
    b% = i% + 200
    on_error_goto container_existe : container b% : off_error_goto
container_existe:
    hide b% : top b%,onglet_top%+25 : left b%,onglet_left%
    width b%,onglet_width% : height b%,onglet_height%
    caption b%,"Onglet "+str$(i%)
next i%

onglet_actif% = 1
gosub montrer_onglet
return

' créer les boutons d'onglet
creer_boutons:
for i%=1 to onglet_n%
    b% = i% + 100
    button b% : top b%,onglet_top% : left b%,(i%-1)*onglet_bwidth%+onglet_left%
    width b%,onglet_bwidth% : font_bold_off b% : on_click b%,click_onglet
    caption b%,"Onglet "+str$(i%)
next i%
return

' supprimer les boutons d'onglet existants
supprimer_boutons:
if onglet_n%=0 then return
for i%=1 to onglet_n%
    delete i%+100
next i%
return

' afficher l'onglet cliqué
montrer_onglet:
font_bold onglet_actif% + 100
show onglet_actif% + 200
return

' cacher l'ancien onglet
cacher_onglet:
        font_bold_off onglet_actif%+100
        hide onglet_actif%+200
return

' on a cliqué sur un onglet
click_onglet:
for i%=1 to onglet_n%
    if clicked(i%+100)=1
        gosub cacher_onglet
        onglet_actif% = i%
        gosub montrer_onglet
    end_if
next i%
return

Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html En ligne
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Exemple de gestion des onglets en Panoramic pur Empty
MessageSujet: Re: Exemple de gestion des onglets en Panoramic pur   Exemple de gestion des onglets en Panoramic pur EmptyLun 28 Mar 2011 - 15:56

Très intéressant, bravo Klaus !
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12293
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

Exemple de gestion des onglets en Panoramic pur Empty
MessageSujet: Re: Exemple de gestion des onglets en Panoramic pur   Exemple de gestion des onglets en Panoramic pur EmptyLun 28 Mar 2011 - 18:26

On peut même placer ces boutons et containers dans un seul container général, et on peut alors placer l'ensemble du système facilement, avec TOP et LEFT pour le container général, on peut l'activer ou désactiver, le cacher ou le montrer, comme s'il s'agissait d'un seul objet !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html En ligne
659_minifly




Nombre de messages : 590
Age : 75
Localisation : Valenciennes Nord
Date d'inscription : 29/04/2010

Exemple de gestion des onglets en Panoramic pur Empty
MessageSujet: Re: Exemple de gestion des onglets en Panoramic pur   Exemple de gestion des onglets en Panoramic pur EmptyLun 28 Mar 2011 - 18:57

bravo j'adopte bounce
Revenir en haut Aller en bas
Yannick




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

Exemple de gestion des onglets en Panoramic pur Empty
MessageSujet: re   Exemple de gestion des onglets en Panoramic pur EmptyLun 28 Mar 2011 - 20:34

Je mets en réserve pour une application futur
mais ca me plait.

cheers cheers cheers
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

Exemple de gestion des onglets en Panoramic pur Empty
MessageSujet: Re: Exemple de gestion des onglets en Panoramic pur   Exemple de gestion des onglets en Panoramic pur EmptyLun 9 Mai 2011 - 0:57

Bon, j'ai commencé une autre appli Panoramic dont le but sera de placer des sprites sur une image et une fois l'image satisfaisant d'enregistrer le code panoramic ou l'image.

J'ai donc repris le principe des onglet de cet exemple.

Pour le moment (C'est loin d'être fini, ça donne ça Smile )
J'espère qu'une réponse sur un message de Klaus le refera revenir. Il a tellement de bonnes idées à exploiter ^^

Code:

' _____________________________________________________________
' *      Createur d image ou de code à partir de sprites      *
' _____________________________________________________________
' *                                                          *
' * ordre de l entete du programme                            *
' _____________________________________________________________
' * - liste des LABEL personnelles                            *
' * - liste des constantes (ce sont des variables car les    *
' *  constantes n existent pas dans PANORAMIC)              *
' *    + commandes DIM pour les "constantes" du programme    *
' *    + initialisation des valeurs des "constantes"        *
' * - liste des DIM pour déclarer les variables              *
' * - initialisations (interface graphique, variables, ...)  *
' * - liste des routines évènements                          *
' * - liste des sous-programmes internes                      *
' _____________________________________________________________

dim chemin$,NbmaxS%
dim largeur_f%, hauteur_f%, hauteur_b%, decalage%, NblisteSprite%, NColonne%, NbOnglets%
largeur_f% = screen_x: hauteur_f%=screen_y: hauteur_b% = 17 : decalage%=10 : NblisteSprite% = 35: NColonne% = 2
NbOnglets% = 5
chemin$ = "C:\Program Files\Panoramic Editor V 0.9.20\sources\Createur_image_ou_code_depuis_sprites\"
NbMaxS%=NColonne%*NblisteSprite%

dim retour%,Coord$,pCoord, l_onglet$(NbOnglets%), N_b_onglet%,N_onglet%,Onglet_actif%
dim i%,j%, N_menu%, N_objet%, N_liste_sprite%(NColonne%), N_info_sprite%(NColonne%), N_open%, N_save%, N_Timer%, N_Fenetre%
dim S_nom$(NbMaxS%), S_num%(NbMaxS%), pos_y%, pos_x%, hauteur%, largeur%, lInfo%
dim N_B_Supprimer%, S$, onglet_width%

label Fin,RecupCoord, clic_Supprimer, Afficher_B_onglets, montrer_onglet, cacher_onglet, click_onglet

width 0,largeur_f% : height 0,hauteur_f%:' Initialisation de la fenêtre principale
Coord$=string$(11," "): pCoord=adr(Coord$) : ' Initialisation de la gestion de la souris
dll_on chemin$+"GetMouse.dll" : ' Chargement de la dll pour la souris
N_objet%=1 : ' Initialisation du nombre d objets utilisés

' Création de l'ecran de gestion des sprites

pos_y% = decalage%: onglet_width%=120
l_onglet$(1)="Gerer Sprites": l_onglet$(2)="Afficher image": l_onglet$(3)= "Non utilisé":l_onglet$(4)= "Non utilisé": l_onglet$(5)= "Non utilisé"
N_b_onglet%=N_objet%
gosub Afficher_B_onglets
N_Objet%=N_Objet%+NbOnglets%
N_Onglet%= N_objet%
for i%=0 to NbOnglets%-1
  container N_Onglet%+i%
  hide N_Onglet%+i% : top N_Onglet%+i%, 2*decalage%+hauteur_b% : left N_Onglet%+i%,decalage%
  width N_Onglet%+i%, largeur_f%-2*decalage%
  height N_Onglet%+i%, hauteur_f% - 90
  caption N_Onglet%+i%,l_onglet$(i%+1)
next i%
N_Objet%=N_Objet%+NbOnglets%

largeur%= decalage% + 5*(len("Texte resprésentant le Sprite n°")+3):  ' largeur du container contenant la liste des sprites
lInfo%  = decalage% + 5*(len("N°99  X:000  Y:000  Scale:2.0  Inutilisé")): ' largeur du container contenant les infos sur les sprites

for j%=0 to (NColonne% -1)
  N_liste_sprite%(j%+1)=N_objet%: pos_y%= 2*decalage% : hauteur% = 3*decalage% + NblisteSprite%*hauteur_b%
  container N_liste_sprite%(j%+1): parent N_liste_sprite%(j%+1),N_Onglet%:top N_liste_sprite%(j%+1),pos_y%
  left N_liste_sprite%(j%+1), (8*j%+1) * decalage% + j%*(largeur%+lInfo%)
  height N_liste_sprite%(j%+1), hauteur% : width N_liste_sprite%(j%+1), largeur% + 2*decalage%
  caption N_liste_sprite%(j%+1),"Liste des sprites" : N_objet%=N_objet%+1
  ' exemple d_option cochable => option N_objet% : parent N_objet%,N_liste_sprite%(j%+1) : top N_objet%,pos_y% : left N_objet%,decalage% : caption N_objet%,"Option selectionnable": N_objet%=N_objet%+1: pos_y%=pos_y%+hauteur_b%
  ' exemple de zone de saisie avec etiquette:
  '      etiquette      => alpha N_objet% : parent N_objet%,N_liste_sprite%(j%+1) : top N_objet%,pos_y% : left N_objet%,decalage% : caption N_objet%,"Autre:": N_objet%=N_objet%+1
  '      champ editable => edit N_objet% : parent N_objet%,N_liste_sprite%(j%+1) : top N_objet%,pos_y% : left N_objet%,decalage%+40: N_objet%=N_objet%+1: pos_y%=pos_y%+hauteur_b%
  pos_y%= 2*decalage%
  For i% = 1 to NblisteSprite%
    check N_objet% : parent N_objet%,N_liste_sprite%(j%+1) : top N_objet%,pos_y% : left N_objet%,decalage% : height N_objet%, hauteur_b%:width N_objet%, largeur%: caption N_objet%,"Texte resprésentant le Sprite n°"+str$(i%+j%*NblisteSprite%): N_objet%=N_objet%+1: pos_y%=pos_y%+hauteur_b%
  Next i%

  N_info_sprite%(j%+1)=N_objet%: pos_y%= 2*decalage% : hauteur% = 3*decalage% + NblisteSprite%*hauteur_b% - 2
  container N_info_sprite%(j%+1): parent N_info_sprite%(j%+1),N_Onglet%: top N_info_sprite%(j%+1),pos_y%: on_click N_info_sprite%(j%+1),RecupCoord
  left N_info_sprite%(j%+1),decalage%+j%*(5*decalage%+lInfo%)+(j%+1)*(largeur%+3*decalage%): height N_info_sprite%(j%+1), hauteur%
  width N_info_sprite%(j%+1), lInfo%+2*decalage%: caption N_info_sprite%(j%+1),"Info sur les sprites" : N_objet%=N_objet%+1
  pos_y%= 2*decalage%
  For i% = 1 to NblisteSprite%
    alpha N_objet% : parent N_objet%,N_info_sprite%(j%+1) : top N_objet%,pos_y% : left N_objet%,decalage% : height N_objet%, hauteur_b%
    width N_objet%, lInfo%: caption N_objet%,"N°"+right$("00"+str$(j%*NblisteSprite% + i%),2)+"  X:000  Y:000  Scale:2.0  Inutilisé"
    N_objet%=N_objet%+1: pos_y%=pos_y%+hauteur_b%
  Next i%
next j%

pos_y%=pos_y%+int(3.5*decalage%): pos_x%=decalage%
button N_objet%: N_B_Supprimer% = N_objet%:parent N_B_Supprimer%,N_Onglet%:S$="Supprimer sprite(s)":top N_objet%,pos_y%:  left N_objet%, pos_x%: height N_objet%, hauteur_b%
width N_objet%, decalage%+5*len(S$): caption N_objet%,S$ : N_objet%=N_objet%+1: pos_x%=pos_x%+decalage%+decalage%+5*len(S$)

Onglet_actif% = 0
gosub montrer_onglet

' traitement des événements
on_close 0,Fin: on_click 0,RecupCoord : on_key_down 0,RecupCoord

for j%=0 to (NColonne% -1)
on_click N_liste_sprite%(j%+1),RecupCoord
  For i% = 1 to NblisteSprite%
    on_click N_liste_sprite%(j%+1)+i%, RecupCoord
    on_click N_info_sprite%(j%+1)+i%, RecupCoord
  Next i%
next j%

for i%= 0 to NbOnglets%-1
  on_click N_B_onglet%+i%,click_onglet
next i%

on_click N_B_Supprimer%,clic_Supprimer

REM TIMER N_objet%: TIMER_INTERVAL N_objet%,100: ON_TIMER N_objet%,RecupCoord: N_objet%=N_objet%+1 : ' Declaration du timer pour récupérer les information de la souris

END

' Récupération de l etat de la souris (coordonnées et état du clic)
RecupCoord:
  retour%=dll_call1("GetMouseXY",pCoord)
  Coord$=left$(Coord$,len(Rtrim$(Coord$))-1)
  Coord$=Right$(Coord$,len(Coord$)-1)
  caption 0,"Position de la souris: "+Coord$+" - Etat du clic: "+str$(retour%)
  Coord$=string$(10," ")
return

' afficher les boutons des onglets
Afficher_B_onglets:
for i%=0 to NbOnglets%-1
    button N_b_onglet%+i% : top N_b_onglet%+i%,pos_y%: left N_b_onglet%+i%,i%*onglet_width%+(i%+1)*decalage%
    width N_b_onglet%+i%,onglet_width%: font_bold_off N_b_onglet%+i% : caption N_b_onglet%+i%,l_onglet$(i%+1)
next i%
return

' afficher l'onglet cliqué
montrer_onglet:
font_bold onglet_actif% +  N_b_onglet%
show onglet_actif% + N_onglet%
return

' cacher l'ancien onglet
cacher_onglet:
        font_bold_off onglet_actif%+  N_b_onglet%
        hide onglet_actif%+ N_onglet%
return

' on a cliqué sur un onglet
click_onglet:
for i%=0 to NbOnglets%-1
    if clicked(i%+N_b_onglet%)=1
        gosub cacher_onglet
        onglet_actif% = i%
        gosub montrer_onglet
    end_if
next i%
return

' Traite le bouton Supprimer de l'onglet 0
clic_Supprimer:

return

' Sortie du programme
fin:
  dll_off :  ' Déchargement des dll
  terminate :' On libère les ressources
return
Revenir en haut Aller en bas
Contenu sponsorisé





Exemple de gestion des onglets en Panoramic pur Empty
MessageSujet: Re: Exemple de gestion des onglets en Panoramic pur   Exemple de gestion des onglets en Panoramic pur Empty

Revenir en haut Aller en bas
 
Exemple de gestion des onglets en Panoramic pur
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Un exemple de gestion d'un sprite vaisseau avec panoramic
» Outils de récupération et gestion des mots clés Panoramic
» Truver les handles des onglets de Panoramic Editor
» Gestion des menus Panoramic.
» PANORAMIC et informatique de gestion (les tableaux)

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: