2010-11-26 20 views
7

¿Alguna idea de hacer invisible una de las opciones en el componente TRadioGroup? (Delphi 7)cómo Invisible uno del artículo en TRadioGroup?

alt text

+1

sin saber exactamente su razón para hacerlo, yo supose que desea eliminar alguna opción de que o bien no está disponible o no es aplicable. Entonces, como guía general de la interfaz de usuario, le sugiero que simplemente ** deshabilite ** en su lugar. –

Respuesta

15

creo que sería más semántica utilizar Buttons[] propiedad en lugar, por lo

RadioGroup.Buttons[Index].Visible := False 

y usabilidad, desactivar (Enabled := False) en lugar de ocultar

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

Dejará sin embargo un punto en blanco donde el elemento se volvió invisible :) – Plastkort

1

Retire la cadena deseada de la TRadioGroup.Items propiedad:

RadioGroup1.Items.Delete(IndexHere); 
+0

Lo que mueve los otros elementos por uno (por lo que si usa los índices en otro lugar, debe ajustarlos para eso). –

+0

Es cierto, porque al eliminar la cadena de la propiedad Elementos se eliminará el botón TRadioButton correspondiente y se reposicionarán los botones restantes en consecuencia. –

0

si desea conservar el itemindex de las cadenas/elementos (visibles o no) en el grupo de radio que va a tener que guardar en otro lugar. Por lo tanto, declare una TStringlist que contiene todos los elementos del grupo de radio por separado. A continuación, busque el índice en esa lista de cadenas después de la selección del grupo de radio. algo así como:

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


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

un poco por encima, pero simple y comprensible ...

Cuestiones relacionadas