Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Обработка чекбоксов


Нойвам ©   (2009-06-21 02:33:00) 

Добрый день, подскажите пожалуйста как правильно организовать проверку большого кол-ва checkbox`ов.
то есть я хочу сделать что то вроде этого:
for i:=1 to n do
if checkbox[i].Checked=true then label[i].Caption:='1' else label[i].Caption:='0';


axis_of_evil   (2009-06-22 14:11:00) [1]

спасибо, Юрий :>


Юрий Зотов   (2009-06-22 14:10:00) [2]

> axis_of_evil ©   (22.06.09 11:28) [5]
> так?
Конечно.


axis_of_evil   (2009-06-22 12:06:00) [3]


> Ega23 ©   (22.06.09 11:44) [6]

стол %>


brother   (2009-06-22 11:49:00) [4]

> Ты - табличко?  :)))

ну хоть не креведко)


Ega23   (2009-06-22 11:44:00) [5]


> i am a table %>


Ты - табличко?  :)))


axis_of_evil   (2009-06-22 11:28:00) [6]

const
OnOff: array[TCheckBoxState] of string = ('выкл.', 'вкл.', 'заело');
// ==========
with CheckListBox1 do
Items[i] := 'Чайник на плите: ' + OnOff[State[i]];


так?
// я на полном серьезе отношу себя к начинающим, потому как программированием занимался сколь-либо серьезно три года назад -> i am a table %>


Юрий Зотов   (2009-06-21 11:43:00) [7]

Кстати, малюсенькая задачка для начинающих программеров (кто хочет, естественно) - сократить код в [3] и одновременно расширить его возможности.

Ув. профи, обратите внимание - для начинающих.
:о)


Юрий Зотов   (2009-06-21 06:02:00) [8]


const
 OnOff: array[boolean] of string = ('выкл.', 'вкл.');
// ==========
with CheckListBox1 do
 Items[i] := 'Чайник на плите: ' + OnOff[State[i] = cbChecked];

:o)


TIF   (2009-06-21 05:32:00) [9]

> проверку большого кол-ва checkbox`ов

Подозреваю, что вместо использования кучи вам было бы удобнее, проще и логичнее использовать компонент TCheckListBox

if CheckListBox1.State[i]=cbChecked then ля-ля-ля else тра-ля-ля;

А возможно, ещё и вместо label-ов использовать саму строку с "галочкой", которую мы щёлкаем:
CheckListBox1.Items[i]:='Чайник на плите: вкл.';
CheckListBox1.Items[i]:='Чайник на плите: выкл.';


;-)


Юрий Зотов   (2009-06-21 03:40:00) [10]

Вариант 1 - сделать массивы (один хранит CheckBox'ы, другой - Label'ы).

Вариант 2 - оставить CheckBox'ам и Label'ам имена по умолчанию, а для поиска и использовать FindComponent.

Вариант 3.  Назначить CheckBox'ам и Label'ам свойство Tag, а для поиска использовать цикл for i := 0 to ComponentCount - 1.

И еще можно варианты придумать. Все зависит от задачи - что в конечном счете нужно-то?


Наверх

Титульная страница Поиск, карта сайта Написать письмо