Après windows pour les nuls, voici PB pour les bons (ou presque).

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 16-02-2011 09:06:41

bga  
Membre Geek
Date d'inscription: 02-09-2010
Messages: 54
Pépites: 225
Banque: 0

[RESOLU] Redimensionnement d'une window

Bonjour a tous,

je voulais savoir si il existait une méthode pour redimensionner et déplacer automatiquement tous les objets d'une window lorsque l'on change la taille de la fenêtre. Pour l'instant je fais tout à la main dans le resize mais c'est lourd!!

merci

Dernière modification par bga (17-02-2011 15:06:00)

Hors ligne

 

#2 16-02-2011 09:44:03

xlat  
0xc0000005
Award: bf
Lieu: Tanger (طنج)
Date d'inscription: 04-12-2010
Messages: 708
Pépites: 11,303
Banque: 100,221,387,868,884,300
Site web

Re: [RESOLU] Redimensionnement d'une window

Regardes dans le code du projet d'exemple  de PBNIRegex, il y a un "nv_auto_resizer" que j'ai mis au point il y a un moment. C'est moins lourds que du PFC et mais ça ne prend pas en compte les contrôles dans une datawindow.
Il faut ajouter du code générique dans ta fenêtre sur les events Open et Resize (je conseil de le faire niveau ancêtres sous forme de service désactivable via un boolean protected).

Ensuite Il suffit d'indiquer sur chaque contrôles que tu veux redimensionner si il doit être ancré à droite, gauche, haut ou bas en modifiant le tag.

ex:
pour etirer une datawindow dans les deux sens, tu metteras dans le tag "TBLR;".
T = Top
B = Bottom
L = Left
R = Right
; = permet de nettoyer le tag une fois parsé par nv_autoresizer, ainsi si tu l'utilses à d'autres fins, çà reste compatible.

Dernière modification par xlat (16-02-2011 11:08:54)


https://lut.im/eJINqa9o/vAtyxD0h "Don't believe everything you read on the Internet"
    -- Abraham Lincoln

www.ngs.ma

Hors ligne

 

#3 16-02-2011 13:06:37

bga  
Membre Geek
Date d'inscription: 02-09-2010
Messages: 54
Pépites: 225
Banque: 0

Re: [RESOLU] Redimensionnement d'une window

j'ai telechargé le source mais j'arrive pas a ouvrir le pbw, je suis en PB11 :-(

c'est quoi du PFC?

merci

Hors ligne

 

#4 16-02-2011 14:13:48

xlat  
0xc0000005
Award: bf
Lieu: Tanger (طنج)
Date d'inscription: 04-12-2010
Messages: 708
Pépites: 11,303
Banque: 100,221,387,868,884,300
Site web

Re: [RESOLU] Redimensionnement d'une window

PFC =  Powerbuilder Foundation Class, un framework pour powerbuilder


https://lut.im/eJINqa9o/vAtyxD0h "Don't believe everything you read on the Internet"
    -- Abraham Lincoln

www.ngs.ma

Hors ligne

 

#5 16-02-2011 15:03:32

xlat  
0xc0000005
Award: bf
Lieu: Tanger (طنج)
Date d'inscription: 04-12-2010
Messages: 708
Pépites: 11,303
Banque: 100,221,387,868,884,300
Site web

Re: [RESOLU] Redimensionnement d'une window

Petit tuto pour utiliser  nv_auto_resizer :

sur l'objet de type window, il faut :
1) ajouter dans "Instance Variables" :

Code: pb

nv_auto_resizer inv_resizer
boolean ib_resize_handler = false   //pour (dés)activer rapidement le service

2) sur event Open ajouter :

Code: pb

if ib_resize_handler then
  inv_resizer = create nv_auto_resizer
  inv_resizer.initialize(this,this)
end if

3) sur event Close ajouter :

Code: pb

if ib_resize_handler then
  if isvalid(inv_resizer) then destroy inv_resizer
end if

4) sur event Resize :

Code: pb

if ib_resize_handler then
  this.setredraw(false)
  inv_resizer.event resize(sizetype, width, height)
  this.setredraw(true)
end if


Ensuite, modifier les "tag" objets des visuels pour qu'ils débutent par les lettres TBLR et ; pour nettoyer le tag lors de l'appel "inv_resizer.initialize(this,this)".

Dernière modification par xlat (16-02-2011 15:04:11)


https://lut.im/eJINqa9o/vAtyxD0h "Don't believe everything you read on the Internet"
    -- Abraham Lincoln

www.ngs.ma

Hors ligne

 

#6 17-02-2011 14:16:34

bga  
Membre Geek
Date d'inscription: 02-09-2010
Messages: 54
Pépites: 225
Banque: 0

Re: [RESOLU] Redimensionnement d'une window

Merci,
très simple d'utilisation une fois que tout est en place.
Ne pas oublier de recopier dans votre projet debug_message, hasmethod et bien sur nv_auto_resizer.


Merci

Hors ligne

 

#7 17-02-2011 14:38:04

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2483
Pépites: 76
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Redimensionnement d'une window

Bonjour,

N'oublies pas le [RESOLU] dans le titre du topic.

Merci.


Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22