Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.08.16;
Скачать: CL | DM;

Вниз

Обработка чекбоксов   Найти похожие ветки 

 
Нойвам   (2009-06-21 02:33) [0]

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


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

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

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

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

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


 
TIF ©   (2009-06-21 05:32) [2]

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

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

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

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


;-)


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


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

:o)


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

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

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


 
axis_of_evil ©   (2009-06-22 11:28) [5]

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


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


 
Ega23 ©   (2009-06-22 11:44) [6]


> i am a table %>


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


 
brother ©   (2009-06-22 11:49) [7]

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

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


 
axis_of_evil ©   (2009-06-22 12:06) [8]


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

стол %>


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

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


 
axis_of_evil ©   (2009-06-22 14:11) [10]

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



Страницы: 1 вся ветка

Текущий архив: 2009.08.16;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.017 c
15-1245213184
@!!ex
2009-06-17 08:33
2009.08.16
прикольная реклама gmail


15-1245117148
brother
2009-06-16 05:52
2009.08.16
функция Exel


15-1244174940
Дмитрий С
2009-06-05 08:09
2009.08.16
Русские буквы в названиях таблиц/полей MySQL


3-1225884587
Tepex
2008-11-05 14:29
2009.08.16
приложение зависает при обращении к Firebird. что делать помогите


6-1204874743
Михаил (Питер)
2008-03-07 10:25
2009.08.16
Широковещательный UDP запрос