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
» Synedit Parameters
par Yannick Aujourd'hui à 0:27

» Code à vérifier SVP (Oups ! résolu)
par Jean Claude Hier à 21:16

» Compilateur FBPano
par jean_debord Hier à 9:56

» Bienvenue à Virtualalan !
par UltraVox Hier à 9:18

» Concours de Morpions
par jjn4 Hier à 0:04

» ShortName$(F) [Cloturé]
par papydall Mer 21 Juin 2017 - 16:19

» Remplacer espace par tiret dans noms des dossiers / fichiers
par papydall Mer 21 Juin 2017 - 15:27

» Menu personalisé avec icones et menu contextuel
par Laurent (Minibug) Mer 21 Juin 2017 - 12:44

» La liste des choses à faire ...
par Jack Mar 20 Juin 2017 - 22:49

» Quoi de neuf à propos de Goric 3D ? (@Jack)
par UltraVox Mar 20 Juin 2017 - 21:06

» Nom court et anti fenetre dos
par silverman Mar 20 Juin 2017 - 18:31

» Ludothèque Panoramic
par jjn4 Mar 20 Juin 2017 - 18:09

» Proposition à la communauté
par Yannick Mar 20 Juin 2017 - 15:02

» >199
par maelilou Mar 20 Juin 2017 - 14:13

» NUMBER_FOCUS
par Yannick Lun 19 Juin 2017 - 15:25

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Juin 2017
LunMarMerJeuVenSamDim
   1234
567891011
12131415161718
19202122232425
2627282930  
CalendrierCalendrier

Partagez | 
 

 SUB centrer objet à partir d'1 form divisé en lig. et col.

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
bignono

avatar

Nombre de messages : 1079
Age : 60
Localisation : Val de Marne
Date d'inscription : 13/11/2011

MessageSujet: SUB centrer objet à partir d'1 form divisé en lig. et col.   Mer 16 Oct 2013 - 20:40

Bonsoir à tous Smile 
J'ai repris ma sub de partage d'un form en lignes et colones et j'ai un peu complexifié ma formule de calcul de manière à pouvoir centrer dans une zone précise un objet.
J'ai mis sur le web dav à Ygeronimi dans le dossier procédure.
Ici le programme d'essai qui contient la sub partage(C,L) que j'ai publié hier, mais qui ne sert que juste pour montrer de visu la manière dont viennent se  positionner les objets, ce qui aide à comprendre le fonctionnement de la sub centre(obj$,C,L,COBJ,LOBJ,WOBJ,HOBJ,capt$).
Code:
label fin
width 0,1300:height 0,700

picture number_objects+1
full_space number_objects
color number_objects,240,240,180
2d_target_is number_objects
2d_pen_color 0,0,0:partage(9,11)
2d_pen_color 250,0,0:partage(2,2)

' ==============================================================================
' ==============================================================================
' Dans ces exemples d'objet, C et L font 9 et 11 pour le button et l'alpha
' le form est donc divisé en 9 colones et 11 lignes (voir le quadrillage de
' lignes noires), et l'on centre le button dans la cellule de coordonnées 5 x 6
' soit 5ème colone et 6ème ligne: bouton "QUITTER"
' L'alpha quant à lui est aux coordonnées 2 x 2 (2ème colone, 2ème ligne)
' pour les check on a imaginé séparer le form en 18 colones et 22 lignes
' pour les option le form est séparé en 9 colones et 33 lignes
' pour le container, le form est partitionné en 4 (2x2) (voir les lignes rouges)
' etc...
' ==============================================================================
' ==============================================================================
centre("button",9,11,5,6,90,30,"QUITTER"):on_click number_objects,fin
centre("alpha",9,11,2,2,75,17,"BONJOUR!")
centre("check",18,22,5,9,55,17,"Afficher")
centre("check",18,22,5,10,55,17,"Trier")
centre("option",9,33,8,4,75,17,"Rouge")
centre("option",9,33,8,5,75,17,"Vert")
centre("option",9,33,8,6,75,17,"Bleu")
centre("container",2,2,2,2,400,200," Informations ")
centre("edit",9,8,3,6,100,30,"Évènement")
centre("memo",15,11,8,1,100,60,"Je suis un memo")
end

' ==============================================================================
' ==============================================================================
' DONC SI VOUS AVEZ BIEN SAISI LE FONCTIONNEMENT
' DE LA SUB centre(obj$,C,L,COBJ,LOBJ,WOBJ,HOBJ,capt$)
' LA SUB SUIVANTE: partage(C,L) ainsi que les lignes 8 et 9 ne servent à rien!!!
' ELLES SONT LÀ POUR ILLUSTRER ET COMPRENDRE LA SUB centre(obj$,...)
sub partage(C,L)
   dim_local i,j
   while i<c
      2d_line ((width(0)-16)/C)+j,0,((width(0)-16)/C)+j,height(0)
      j=j+(width(0)-16)/C:i=i+1
   end_while
   i=0:j=0
   while i<L
      2d_line 0,((height(0)-38)/L)+j,width(0),((height(0)-38)/L)+j
      j=j+(height(0)-38)/L:i=i+1
   end_while
end_sub
' ==============================================================================
' ==============================================================================

sub centre(obj$,C,L,COBJ,LOBJ,WOBJ,HOBJ,capt$)
   dim_local xobj,yobj
      if obj$="button" then button number_objects+1
      if obj$="alpha" then alpha number_objects+1
      if obj$="check" then check number_objects+1
      if obj$="option" then option number_objects+1
      if obj$="container" then container number_objects+1
      if obj$="edit" then edit number_objects+1:text number_objects,capt$
      if obj$="memo" then memo number_objects+1:item_add number_objects,capt$
      width number_objects,WOBJ
      height number_objects,HOBJ
      xobj=((width(0)-16)/C)*(COBJ-1)+((width(0)-16)/(C*2))-(width(number_objects)/2)
      yobj=((height(0)-38)/L)*(LOBJ-1)+((height(0)-38)/(L*2))-(height(number_objects)/2)
      left number_objects,xobj
      top number_objects,yobj
      if obj$<>"edit" and obj$<>"memo" then caption number_objects,capt$
end_sub

fin:
terminate
Ici, je met la version allégée, sans la sub partage(C,L)
Code:
label fin
width 0,1300:height 0,700

picture number_objects+1
full_space number_objects
color number_objects,240,240,180

' ==============================================================================
' ==============================================================================
' Dans ces exemples d'objet, C et L font 9 et 11 pour le button et l'alpha
' le form est donc divisé en 9 colones et 11 lignes (voir le quadrillage de
' lignes noires), et l'on centre le button dans la cellule de coordonnées 5 x 6
' soit 5ème colone et 6ème ligne: bouton "QUITTER"
' L'alpha quant à lui est aux coordonnées 2 x 2 (2ème colone, 2ème ligne)
' pour les check on a imaginé séparer le form en 18 colones et 22 lignes
' pour les option le form est séparé en 9 colones et 33 lignes
' pour le container, le form est partitionné en 4 (2x2) (voir les lignes rouges)
' etc...
' ==============================================================================
' ==============================================================================
centre("button",9,11,5,6,90,30,"QUITTER"):on_click number_objects,fin
centre("alpha",9,11,2,2,75,17,"BONJOUR!")
centre("check",18,22,5,9,55,17,"Afficher")
centre("check",18,22,5,10,55,17,"Trier")
centre("option",9,33,8,4,75,17,"Rouge")
centre("option",9,33,8,5,75,17,"Vert")
centre("option",9,33,8,6,75,17,"Bleu")
centre("container",2,2,2,2,400,200," Informations ")
centre("edit",9,8,3,6,100,30,"Évènement")
centre("memo",15,11,8,1,100,60,"Je suis un memo")
end

sub centre(obj$,C,L,COBJ,LOBJ,WOBJ,HOBJ,capt$)
   dim_local xobj,yobj
      if obj$="button" then button number_objects+1
      if obj$="alpha" then alpha number_objects+1
      if obj$="check" then check number_objects+1
      if obj$="option" then option number_objects+1
      if obj$="container" then container number_objects+1
      if obj$="edit" then edit number_objects+1:text number_objects,capt$
      if obj$="memo" then memo number_objects+1:item_add number_objects,capt$
      width number_objects,WOBJ
      height number_objects,HOBJ
      xobj=((width(0)-16)/C)*(COBJ-1)+((width(0)-16)/(C*2))-(width(number_objects)/2)
      yobj=((height(0)-38)/L)*(LOBJ-1)+((height(0)-38)/(L*2))-(height(number_objects)/2)
      left number_objects,xobj
      top number_objects,yobj
      if obj$<>"edit" and obj$<>"memo" then caption number_objects,capt$
end_sub

fin:
terminate
A+ Wink Wink Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

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

MessageSujet: Re: SUB centrer objet à partir d'1 form divisé en lig. et col.   Mer 16 Oct 2013 - 22:03

J'ai eu un peu de mal à comprendre où tu voulais en venir,

Mais après une analyse du code et quelques manipulations j'ai fini par comprendre.
Il s'agit d'une méthode de création d'objets avec positionnement dans une grille et déclaration de la taille (WIDTH/HEIGHT).
C'est assez pratique pour positionner des objets, une fois qu'on a compris la démarche.

Je pense que l'on pourrait ajouter une SUB d'alignement à gauche, par exemple dans ton code on pourrait ainsi aligner l'EDIT sur les CHECK(s). On choisis la sub que l'on veut pour chaque objet.

C'est une méthode à assimiler mais qui présente bien des avantages pour la création des objets.

Au passage: j'ai retenu ta méthode de numérotation des objets:
Code:
if obj$="button" then button number_objects+1
Seul problème, on ne connait pas le numéro de l'objet.

C'est intéressant et à méditer.

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5837
Age : 44
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: SUB centrer objet à partir d'1 form divisé en lig. et col.   Mer 16 Oct 2013 - 22:35

Excellent
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 7809
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Jeu 17 Oct 2013 - 0:20

Les deux fichiers *.zip sont en ligne...Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: SUB centrer objet à partir d'1 form divisé en lig. et col.   

Revenir en haut Aller en bas
 
SUB centrer objet à partir d'1 form divisé en lig. et col.
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Ajout d'un nouveau type d'objet dans une form Panoramic !
» créer un sprite à partir d'un autre sprite
» comment changer de niveau a partir d'un certain nombre de point ?
» Passer un objet devant les autres (ou derrière)
» Opération sur objet EDIT

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