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
» COMPILATEUR V 0.9 beta 7 du 10 aout 2017
par Yannick Aujourd'hui à 1:58

» Pb 17 (en analyse): ITEM_SELECT ne fonctionne pas
par Jack Hier à 19:26

» Compilateur FBPano
par Mike Hier à 13:52

» un nouveau editeur panobasic
par Jean Claude Hier à 10:18

» Le compilateur.
par Pedro Alvarez Hier à 8:36

» Pb 16 (en analyse): ON_CLOSE plante à l'exécution
par Jack Mer 16 Aoû 2017 - 20:00

» Pb 15 (en analyse): TIMER_ON plante à l'exécution
par Jack Mer 16 Aoû 2017 - 19:58

» KGF_dll - nouvelles versions
par Yannick Dim 13 Aoû 2017 - 17:35

» probleme d'outil
par Yannick Dim 13 Aoû 2017 - 17:32

» Carte de France des régions
par Yannick Sam 12 Aoû 2017 - 21:33

» Pb 14 (en analyse): PRINT_LOCATE plante à l'exécution
par Jack Ven 11 Aoû 2017 - 22:37

» Petit avertissement [Mots réservés]
par papydall Ven 11 Aoû 2017 - 13:45

» Distances sur plan
par JL35 Jeu 10 Aoû 2017 - 21:29

» Tracé : Triangle, Carrée, Dents de scie, Sinusoïde redressée
par papydall Jeu 10 Aoû 2017 - 14:52

» Troncature dans une image
par JL35 Mer 9 Aoû 2017 - 13:45

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Août 2017
LunMarMerJeuVenSamDim
 123456
78910111213
14151617181920
21222324252627
28293031   
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 : 1085
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 : 4989
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 : 5849
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 : 7962
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 32 bits :: Vos sources, vos utilitaires à partager-
Sauter vers: