Redimenssionner les controles d'un sstab [Résolu]

Signaler
Messages postés
103
Date d'inscription
lundi 23 avril 2007
Statut
Membre
Dernière intervention
20 octobre 2012
-
Messages postés
103
Date d'inscription
lundi 23 avril 2007
Statut
Membre
Dernière intervention
20 octobre 2012
-
Bonjour,
 j'ai un souci lors du redimenssionnement d'un controle SSTab
J'utilise d'abord une procedure pour stocker les dimenssions et les positions de chaque controle.
Or en verifiant cette procedure je me suis rendu compte que seules les données concernant l'onglet selectioné lors de le mise en route de l'appli sont cohérente
pour les controles compris dans les autres onglet le .left est de l'ordre de -70000 twips.
J'ai essayé de changer l'onglet avant de memoriser les positions, (c'est a dire que je change d'onglet pour selectionner celui ou se trouve le controle) mais ca ne change rien.

3 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
73
Salut
Oui, c'est normal quand on connait le fonctionnement d'un SSTab :
En fait, quand tu cliques sur un onglet, le composant déplace les objets de l'ancien onglet vers la gauche, à une adresse négative donc invisible + Il remet les bonnes coordonnées X aux objets qu'il faut maintenant afficher dans le nouvel onglet.
C'est déroutant, n'est ce pas (je suis passé par là aussi, lol)

Règle avec les SSTab : Ne jamais toucher aux coordonnées Left (ni Top) des objets qu'il renferme.
Mais alors, comment qu'on fait-y donc ?
La solution : Il te suffit, avant d'insérer tes boutons et autres TextBox, de placer une Frame ou une PictureBox sur l'onglet, puis tu installes tes composants à l'intérieur de ce container.
Tu peux le faire après coup : Tu places une Frame sur ton onglet, puis tu sélectionnes tous les objets de l'onglet (sauf la Frame, bien sûr), et tu fais un Couper + Sélection de la Frame + Coller.
De cette manière, on ne touche jamais à la coordonnée X des Frames qui, lors d'un Resize, ne changent pas de place, mais on ne touche à sa largeur et hauteur.
Ensuite, pour les composants qu'elle renferme, leur position est relative à la Frame, c'est à dire que leur position se calcule par rapport aux bords de la Frame qui les acceuille.
De cette manière, même si la Frame est rendue invisible par décalage en X négatif, les composants qu'elle renferme ne changent pas de place dans l'absolu.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
73
PS : Les paramètres de la Frame ou de la PictureBox peuvent être réglés de sorte qu'on ne les voit pas (couleur identique à celle du fond)
Messages postés
103
Date d'inscription
lundi 23 avril 2007
Statut
Membre
Dernière intervention
20 octobre 2012

merci, ca fonctionne bien mieux!