![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
цикл
Алексин © (2007-06-23 22:12:00)доброго времени суток,мастера.
Нкждаюсь в помощи с циклом.
На форме куча checkbox's
делаю цикл на проврку ихнего свойства checked:
for I:=1 to 25 do begin
If checkbox[i].Checked=true then begin
memo1.lines.add(intostr(i));
end;
что не так?
Спасибо за ответы
Leonid Troyanovsky (2007-06-24 10:22:00) [1]
> ppcumax © (24.06.07 01:53) [3]
> Мне сейчас это тоже пригодилось, но, сделал 5 чекбоксов
> arr[1,2...5] выставил на форме
Возьми TCheckListBox и будет тебе щастье.
Ну и, конечно, книжечку к.л. почитай.
--
Regards, LVT.
Однокамушкин (2007-06-24 08:56:00) [2]Если совсем не хочется думать, можно использовать один жутко расточительный в смысле процессорного времени, но работоспособный способ:
for i := 1 to 25 do
if TCheckBox(FindComponent('CheckBox' + IntToStr(i))).Checked then
Memo1.Lines.Add(IntToStr(i));
И вообще никаких массивов не нужно...
Но лучше всё-таки подумать и разобраться с тем, как сделать на основе массива, потому что такое глобальное непонимание базовых вещей создаст большие проблемы в будущем...
Германн (2007-06-24 02:04:00) [3]
> 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]. Где его объявлять и как его заполнять.
ppcumax (2007-06-24 01:53:00) [4]Мне сейчас это тоже пригодилось, но, сделал 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-23 22:43:00) [5]спасибо,странно что сам не догадался)
sinus (2007-06-23 22:35:00) [6]> 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