2010-10-01 6 views
14

Je veux utiliser TGridPanel 2009 de Delphi, mais je ne comprends pas comment l'utiliser correctement. Par exemple, je veux avoir un GridPanel avec 4 colonnes qui devraient avoir chacune 25% de la largeur de GripPanels.Delphi Comment utiliser TGridPanel

J'ai donc mis un GripPanel sur le formulaire et ajouté 4 ColumnItems. Je donne les éléments de colonne SizeStyle ssPercent, et maintenant j'essaye de donner à chaque ColummItem une valeur de 25 (ober l'inspecteur d'objet). Mais pour certaines raisons, l'inspecteur d'objets n'accepte pas la valeur 25. Il est automatiquement remplacé par "23, 8095238095238". Quelqu'un pourrait-il m'expliquer brièvement comment utiliser ces composants? Merci!

Répondre

13

Lorsque vous définissez la Value d'une colonne avec SizeStylessPercent, le composant distribue la nouvelle somme de toutes les colonnes de style ssPercent pour le pourcentage total disponible. Par exemple, si vous avez 4 colonnes de 25% et que vous en définissez une à 50% maintenant, vous avez un total de 125%. Le composant calcule de nouveau "Value" pour avoir le total distribué proportionnellement, c'est-à-dire 50% -> 40% (100 * 50/125).

Pour définir la valeur de plusieurs colonnes à la fois, au moment de l'exécution, vous entourez votre code avec GridPanel.ColumnCollection.BeginUpdate et GridPanel.ColumnCollection.EndUpdate.

Et au moment du design, éditez le .dfm directement. Appuyez sur "Alt + F12" lorsque vous affichez votre formulaire dans l'éditeur de conception, trouvez votre GridPanel dans l'éditeur de texte, modifiez la valeur des colonnes, puis appuyez à nouveau sur Alt + F12 pour revenir à la vue de conception.

+0

Merci, ça marche! Remarque: après avoir déposé un GridPanel sur le formulaire et supprimé les lignes et les colonnes à la conception, ces lignes et colonnes existent toujours à l'exécution et vous devez les supprimer manuellement. Un peu étrange. – flinkiy1

+0

Ou vous pouvez sélectionner les 4 colonnes et écrire 25 dans l'inspecteur d'objets – VitaliyG

+0

@Vitaliy - Ce n'est pas plus facile que de sélectionner tous les 4, puis en tapant 0, ce qui est couvert dans la réponse de Uwe. Ma réponse, plutôt, est utile si vous n'allez pas distribuer également les largeurs. Bien sûr, vous pouvez également le faire mais, en effet, d'autres alternatives sont mieux à cela. –

14

Si vous souhaitez définir toutes les colonnes à la même valeur, sélectionnez toutes les colonnes dans la vue de structure et (en supposant que SizeStyle est déjà défini sur ssPercent) définissez la valeur sur . Cela déclenchera un automatisme qui rendra toutes les colonnes égales.