2010-11-26 7 views
7

Une idée pour rendre invisible l'une des options du composant TRadioGroup? (Delphi 7)comment Invisible un de l'article dans TRadioGroup?

alt text

+1

Sans connaître exactement votre raison de le faire, je supose que vous souhaitez supprimer une option qui est soit non disponible ou non applicable. Donc, en tant que directive générale d'interface utilisateur, je vous suggère de simplement ** désactiver ** à la place. –

Répondre

15

Je pense qu'il serait plus sémantique à utiliser au lieu Buttons[] propriété, de sorte

RadioGroup.Buttons[Index].Visible := False 

et l'ergonomie, pour désactiver (Enabled := False) plutôt que de masquer

4
RadioGroup1.Controls[...].Visible := False; 
+2

Il laissera cependant un endroit vide où l'élément devient invisible était :) – Plastkort

1

Retirez la chaîne souhaitée de la propriété TRadioGroup.Items:

RadioGroup1.Items.Delete(IndexHere); 
+0

Qui déplace les autres éléments de un (donc si vous utilisez les index ailleurs, vous devez ajuster pour cela). –

+0

True, car la suppression de la chaîne de la propriété Items supprime le TRadioButton correspondant et repositionne les boutons restants en conséquence. –

0

si vous souhaitez conserver l'élément itemindex des chaînes/éléments (visibles ou non) dans le groupe radio, vous devrez les conserver ailleurs. Donc, déclarez une TStringlist qui contient tous les éléments du radiogroupe séparément. Puis recherchez l'index dans cette liste de chaînes après la sélection du groupe radio. quelque chose comme:

RadioGroup: TRadioGroup; 
AllRadioItems: TStringList; 
fill both... ect 


RealIndex := AllRadioItems.IndexOf(RadioGroup.Items[RadioGroup.ItemIndex]); 

un peu de frais généraux, mais simple et compréhensible ...

Questions connexes