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

Вниз

цикл   Найти похожие ветки 

 
Алексин   (2007-06-23 22:12) [0]

доброго времени суток,мастера.
Нкждаюсь в помощи с циклом.
На форме куча checkbox"s
делаю цикл на проврку ихнего свойства checked:
for I:=1 to 25 do begin
If checkbox[i].Checked=true then begin
memo1.lines.add(intostr(i));
end;

что не так?
Спасибо за ответы


 
sinus ©   (2007-06-23 22:35) [1]

> for I:=1 to 25 do begin
> If checkbox[i].Checked=true then begin
> memo1.lines.add(intostr(i));
> end;

дай угадаю делфи ругается на данный код?

самый простой способ это создать массив
arr_chbx : [ 1..25]  of TCheckBox;

проверка состояния - т.е. отмечен или нет

for i:=1 to 25 do
   if  arr_chbx[i].Checked  then
     begin
        ///делаешь то что тебе надо
     end


 
Алексин   (2007-06-23 22:43) [2]

спасибо,странно что сам не догадался)


 
ppcumax ©   (2007-06-24 01:53) [3]

Мне сейчас это тоже пригодилось, но, сделал 5 чекбоксов arr[1,2...5] выставил на форме

procedure TForm1.Button1Click(Sender: TObject);
var
arr:array[1..5] of TCheckBox;
i:integer;
begin
Memo1.Clear;
for i:=1 to 5 do
begin
if arr[i].Checked=true then
begin
Memo1.Lines.Add(IntToStr(i));
end;
end;

Ошибка: Acess Violation at ....

Что не так делаю?


 
Германн ©   (2007-06-24 02:04) [4]


> ppcumax ©   (24.06.07 01:53) [3]
>
> Мне сейчас это тоже пригодилось, но, сделал 5 чекбоксов
> arr[1,2...5] выставил на форме
>
> procedure TForm1.Button1Click(Sender: TObject);
> var
> arr:array[1..5] of TCheckBox;
> i:integer;
> begin
> Memo1.Clear;
> for i:=1 to 5 do
> begin
> if arr[i].Checked=true then
> begin
> Memo1.Lines.Add(IntToStr(i));
> end;
> end;
>
> Ошибка: Acess Violation at ....
>
> Что не так делаю?
>

Всё!

Не ну больше у меня сегодня сил нет. (Праздновал юбилей.)
Но всё же. Голова человеку нужна не только как место для причёски. Ну хоть чуть-чуть подумать, что и как должен представлять из себя массив из sinus ©   (23.06.07 22:35) [1]. Где его объявлять и как его заполнять.


 
Однокамушкин   (2007-06-24 08:56) [5]

Если совсем не хочется думать, можно использовать один жутко расточительный в смысле процессорного времени, но работоспособный способ:

for i := 1 to 25 do
 if TCheckBox(FindComponent("CheckBox" + IntToStr(i))).Checked then
   Memo1.Lines.Add(IntToStr(i));


И вообще никаких массивов не нужно...

Но лучше всё-таки подумать и разобраться с тем, как сделать на основе массива, потому что такое глобальное непонимание базовых вещей создаст большие проблемы в будущем...


 
Leonid Troyanovsky ©   (2007-06-24 10:22) [6]


> ppcumax ©   (24.06.07 01:53) [3]

> Мне сейчас это тоже пригодилось, но, сделал 5 чекбоксов
> arr[1,2...5] выставил на форме

Возьми TCheckListBox и будет тебе щастье.

Ну и, конечно, книжечку к.л. почитай.

--
Regards, LVT.



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

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

Наверх




Память: 0.48 MB
Время: 0.014 c
15-1182094571
Nic
2007-06-17 19:36
2007.07.15
Nokia PC Siute не видит телефон


15-1181713840
tsoftware
2007-06-13 09:50
2007.07.15
Продажа исходников


1-1179221654
i2e
2007-05-15 13:34
2007.07.15
MainMenu, в котором строки выделяются рамкой


15-1181582567
DillerXX
2007-06-11 21:22
2007.07.15
Вопрос к тем, кто программировал мобильники


15-1181557286
SkySpeed
2007-06-11 14:21
2007.07.15
Где достать плагин для Горящей Лисы 2.0.0.4 для сохранения в MHT?