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
» StratégoV8 et V9
par Minibug Aujourd'hui à 1:10

» Rotation d'une image d'un angle quelconque
par JL35 Hier à 23:02

» GRID_LOAD
par Jean Claude Hier à 21:04

» HVIEWER
par Yannick Hier à 20:31

» KGF_dll - nouvelles versions
par Klaus Mar 16 Jan 2018 - 21:28

» Déformation d'image en trapèze
par mindstorm Mar 16 Jan 2018 - 21:06

» Mah-Jong américain
par Jean Claude Lun 15 Jan 2018 - 19:37

» Problème avec Deepl
par Klaus Lun 15 Jan 2018 - 0:34

» Quelques nouvelles ...
par Jean Claude Ven 12 Jan 2018 - 22:40

» Renommer les instructions ITEM_... ?
par Jicehel Ven 12 Jan 2018 - 18:56

» Ludothèque Panoramic
par jjn4 Ven 12 Jan 2018 - 18:11

» sous-programmes et fonctions
par Jack Ven 12 Jan 2018 - 17:51

» Mah-Jong français
par Jean Claude Jeu 11 Jan 2018 - 22:15

» panoramic 0.9.28
par gigi75 Ven 5 Jan 2018 - 14:06

» Un jeu qui va vous énerver!
par Jean Claude Jeu 4 Jan 2018 - 22:05

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Janvier 2018
LunMarMerJeuVenSamDim
1234567
891011121314
15161718192021
22232425262728
293031    
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 : 1109
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 : 5130
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 : 5876
Age : 45
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 : 8011
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 !
» Passer un objet devant les autres (ou derrière)
» Opération sur objet EDIT
» Savoir sur quel objet un évènement a eu lieu
» Empêcher un train de partir en marche arrière

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: