2010-11-26 2 views
7

Любая идея сделать один из вариантов в компоненте TRadioGroup невидимым? (Delphi 7)Как Невидимый один из элементов в TRadioGroup?

alt text

+1

, не зная точно причину, чтобы сделать это, я supose, что вы хотите удалить какой-то вариант, который либо отсутствует, либо не применяется. В качестве общего руководства по пользовательскому интерфейсу я бы предложил вам просто ** отключить ** это вместо этого. – 2010-11-26 10:59:18

ответ

15

Я думаю, что было бы более семантический использовать Buttons[] свойство вместо, так

RadioGroup.Buttons[Index].Visible := False 

и удобство использования, чтобы отключить (Enabled := False) вместо того, чтобы скрыть

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

Это, однако, оставляет пустое место, где предмет становится невидимым: :) – Plastkort 2010-11-26 07:12:58

1

Удалить нужную строку из TRadioGroup.Items собственности:

RadioGroup1.Items.Delete(IndexHere); 
+0

Который перемещает другие предметы на один (так что если вы используете индексы где-то в другом месте, вам нужно настроить для этого). – 2010-11-26 10:55:38

0

Если вы хотите сохранить itemindex строк/элементов (видимых или нет) в радиогруппе, вам придется держать их где-то в другом месте. Поэтому объявите TStringlist, который будет содержать все элементы радиогруппы отдельно. Затем найдите индекс в этом списке строк после выбора группы радио. что-то вроде:

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


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

немного накладных расходов, но простых и понятных ...

Смежные вопросы