Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.047 c
4-1170871502
Efir
2007-02-07 21:05
2007.07.15
Отловить клик мыши на форме


1-1178808671
Ддеенниисс
2007-05-10 18:51
2007.07.15
Рисунок из буфера обмена


3-1176892823
MZ
2007-04-18 14:40
2007.07.15
Выбор нескольких записей в Grid е


2-1182416406
_Asph
2007-06-21 13:00
2007.07.15
onclick в TWinControl


15-1181846635
ММК
2007-06-14 22:43
2007.07.15
Symbian





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский