Redimenssionner les controles d'un sstab

Résolu
andalo Messages postés 102 Date d'inscription lundi 23 avril 2007 Statut Membre Dernière intervention 20 octobre 2012 - 30 juin 2008 à 22:06
andalo Messages postés 102 Date d'inscription lundi 23 avril 2007 Statut Membre Dernière intervention 20 octobre 2012 - 1 juil. 2008 à 09:12
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

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
30 juin 2008 à 23:54
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)
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
30 juin 2008 à 23:56
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)
0
andalo Messages postés 102 Date d'inscription lundi 23 avril 2007 Statut Membre Dernière intervention 20 octobre 2012
1 juil. 2008 à 09:12
merci, ca fonctionne bien mieux!
0
Rejoignez-nous