Форум: "Начинающим";
Текущий архив: 2007.07.15;
Скачать: [xml.tar.bz2];
Внизцикл Найти похожие ветки
← →
Алексин (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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.04 c