Réaligner les compos d'une forme modale

Résolu
Signaler
Messages postés
4720
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
31 juillet 2021
-
Messages postés
814
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
30 juillet 2009
-
Bonjour à tous,

toute petite question :
Comment réaligner les composants d'une forme "modale" ?
un d'entre eux est invisible, et la forme doit se rétrécir et lorsque celui-ci est visible, elle doit se redimensionner mais restée modale..

j'ai trouvé une solution mais qui n'est pas élégante..avec Hide, realign etc..
peut-être une API ?

merci pour vos conseils

cantador

6 réponses

Messages postés
3826
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
10 mai 2021
46
Ah bon ...
mais la je comprend encore moins ce que veut

je te rappel quand même le titre de ta question : "Réaligner les compos d'une forme modale"

Quand tu auras décidé du sens de ta question ... prévient moi

Sinon a tout hasard,
la procedure que j'ai donné a l'avantage de redimensionner et/ou replacer tous les composants en une fois ...
sans avoir une impression de sapin de Noël
 
@+
Cirec

<hr size="2" />
Messages postés
814
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
30 juillet 2009
3
salut,

- je croyais que l'on pouvais redimensionner une fenetre modal sans problème. (je ne vois pas bien ton problème)
- les forms qui se redimensionne sous l'oeil (lorsque visible) de l'utilisateur, j'aime pas. ça stress/confuse le user.
- pourquoi ne pas la redimensionner avant de l'afficher? (onShow, override de showmodal, ....)
- un .enabled := false ne fait pas l'affaire? (c'est mieux d'avoir un truc visible mais désactivé que de ce demander pourquoi ce matin le bouton Xyz est manquant sur cet fenêtre)

tu veux déplacer les compos ("réaligner les composants d'une forme") ou rediemensionner ta form ("la forme doit se rétrécir ")?

soit j'ai pas compris ce que tu entend pas "realligne" soit je vois pas bien ton problème. Pourrais-tu nous expliquer brièvement le contexte (le but)?

à demain,

Loda
<hr size="2" width="100%" />Se poser les bonnes questions est le premier pas pour trouver les bonnes réponses.
Messages postés
4720
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
31 juillet 2021
14
merci Loda et cirec pour votre aide..
désolé, mais je me suis expliqué comme un manche..
je suis d'accord avec Loda qu'il n'est pas satisfaisant de faire
disparaître à l'écran des contrôles..Cela est perturbant pour l'utilisateur.

En fait, j'aimerais connaître les solutions les plus légères possibles afin de faire saisir des informations par l'utilisateur ?
est-il possible de se passer d'une forme ?

@+
Messages postés
1284
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
13
Salut,

une petite idée comme ça... regarde du coté de la propriété Autosize de
ta form. Je sais pas si ça le fera mais normalement, la form devrait se
dimensionner de façon à afficher tous les composants visibles... a voir.

Simon
Messages postés
4720
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
31 juillet 2021
14
avec autosize, ça marche si le compo est invisible, mais s'il redevient visible ça marche plus..enfin avec une combine à la noix on peut s'en sortir..
mais en fait, je me suis pris la tête pour rien..
car ma forme peut très bien restée comme elle est.

merci cirec.
tu ne m'en voudras pas, mais l'autre souci est une question plus générale
et je pense qu'il vaut mieux que j'ouvre un autre thème.

cantador
Messages postés
814
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
30 juillet 2009
3
pour faire un redimensionnement facile, groupe tes compo sur des panels et masque le panel complet. puis avant de l'afficher recaulcul la taille de ta form en additionant les largeur/hauteur de tes panel. (et eventuellement en les déplacant)

genre dans OnShow:

NewWidth := pnlGauche.widht + pnlGauche.Left;
if pnlDroite.Visible then
  NewWidht := NewWidth + pnlDroite.Width + MARGE;

width := NewWidth;

Loda
<hr size="2" width="100%" />Se poser les bonnes questions est le premier pas pour trouver les bonnes réponses.