Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Déterminer les marges d'une form Panoramic Mar 11 Sep 2012 - 11:21 | |
| Une form Panoramic peut avoir 3 types de marges: - BORDER_NORMAL (défaut) - BORDER_SMALL - BORDER_HIDE Et sous les différentes versions de Windows (XP, Vista, W7 et bientôt W8), chacune de ces marges a des mensurations différentes. Alors, je propose ici quelques lignes de code extraites d'un programme publié ailleurs, et qui déterminent ces marges dans tous les cas de figure. Le principe est de créer temporairement un MEMO et de lui appliquer FULL_SPACE. Il prend ainsi toute la place disponible. On récupère ensuite les positions absolues et dimensions de la form 0 et du mémo en question, ce qui permet de déduire chacune de ces marges par simple soustraction. Et finalement, on supprime le mémo devenu inutile. Voici les varables nécessaires: - Code:
-
dim hnd%, res%, s$ dim x%, y%, w%, h%, x2%, y2%, w2%, h2% : ce sont les dimensions des objets form 0 et memo dim m_haut%, m_bas%, m_cote% : ' ce sont les marges calculées ' ouvrir KGF.dll dll_on "KGF.dll"
Le calcul est proposé en 2 versions: - pour Panoramic V0.9.24 en forme de procédure - pour Panoramic V0.9.23 en forme de sous-programme Module de calcul:Panoramic V0.9.24: - Code:
-
sub DeterminerLesMarges(obj%) memo obj% : full_space obj% res% = dll_call5("GetFormMetrics",handle(0),adr(x%),adr(y%),adr(w%),adr(h%)) res% = dll_call5("GetFormMetrics",handle(9),adr(x2%),adr(y2%),adr(w2%),adr(h2%)) m_cote% = x2%-x% m_haut% = y2%-y% m_bas% = h%-h2%-y2%+y% ' s$ = "Marges gauche/droite: "+str$(m_cote%)+chr$(13)+chr$(10) ' s$ = s$+"Marge haute: "+str$(m_haut%)+chr$(13)+chr$(10) ' s$ = s$+"Marge basse: "+str$(m_bas%)+chr$(13)+chr$(10) ' message s$ delete obj% end_sub
Panoramic V0.9.23: - Code:
-
DeterminerLesMarges: memo obj% : full_space obj% res% = dll_call5("GetFormMetrics",handle(0),adr(x%),adr(y%),adr(w%),adr(h%)) res% = dll_call5("GetFormMetrics",handle(9),adr(x2%),adr(y2%),adr(w2%),adr(h2%)) m_cote% = x2%-x% m_haut% = y2%-y% m_bas% = h%-h2%-y2%+y% ' s$ = "Marges gauche/droite: "+str$(m_cote%)+chr$(13)+chr$(10) ' s$ = s$+"Marge haute: "+str$(m_haut%)+chr$(13)+chr$(10) ' s$ = s$+"Marge basse: "+str$(m_bas%)+chr$(13)+chr$(10) ' message s$ delete obj% return
Utilisation:Panoramic V0.9.24: - Code:
-
DeterminerLesMarges(9)
Panoramic V0.9.23: - Code:
-
label DeterminerLesMarges dim obj% ... obj% = 9 gosub DeterminerLesMarges
| |
|
Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Déterminer les marges d'une form Panoramic Mar 11 Sep 2012 - 13:10 | |
| Les procédures appliqués aux objets, ça va être carrément pratique. Genre MiseEnForme(Num_objet%) pour appliquer à l'objet les propriétés que l'on veut ... ça me tente ... | |
|