PDA

Просмотр полной версии : Срочно!! нужна помощь по Delphi !


Voland-791
17.04.2010, 11:26
Сталкнулся с такой проблемой пишу программу проблема в компонентах CheckBox (галочки) и Button хочу сделать так
напремер предоставлен большой список в виде "CheckBox" если выбрано 5вещей и это должно быть задействовано при нажатии "Button" да знаю что эт работает через усливия... вот ток как их составить?

EndLeSSDre@M
17.04.2010, 12:01
Пробуй так:

var k:integer;
begin
k:=0;
if checkbox1.checked then k:=k+1;
if checkbox2.checked then k:=k+1;
if checkbox3.checked then k:=k+1;
if checkbox4.checked then k:=k+1;
if checkbox5.checked then k:=k+1;
if checkbox6.checked then k:=k+1;
if checkbox7.checked then k:=k+1;

if k>=5 then showmessage('Выбрано 5') else showmessage('Выбрано меньше 5')

пробовал через циклы чтоб было, но не получилось...

cheater_man
17.04.2010, 12:27
Пробуй так:

var k:integer;
begin
k:=0;
if checkbox1.checked then k:=k+1;
if checkbox2.checked then k:=k+1;
if checkbox3.checked then k:=k+1;
if checkbox4.checked then k:=k+1;
if checkbox5.checked then k:=k+1;
if checkbox6.checked then k:=k+1;
if checkbox7.checked then k:=k+1;

if k>=5 then showmessage('Выбрано 5') else showmessage('Выбрано меньше 5')

пробовал через циклы чтоб было, но не получилось...
:D
А если я выберу 1,2 и 7 то он будет считать,что я выбрал 1,2,3 :D

EndLeSSDre@M
17.04.2010, 12:35
ну пусть пробует через массив, куда будет записываться номер выбранного.. тут же в массиве можешь проверять ключ i на количество выбранного! как мне кажется это тупой вариант, но работать должен))

var i:integer;
k:array[1..10] of integer;
begin
i:=1;
if checkbox1.checked then k[i]:=1 and i:=i+1;
if checkbox2.checked then k[i]:=2 and i:=i+1;
if checkbox3.checked then k:[i]=3 and i:=i+1;
if checkbox4.checked then k:[i]=4 and i:=i+1;
if checkbox5.checked then k:[i]=5 and i:=i+1;
if checkbox6.checked then k:[i]=6 and i:=i+1;
if checkbox7.checked then k:[i]=7 and i:=i+1;

Voland-791
17.04.2010, 15:54
Списибо за ответы нашел выход в током виде

if CheckBox22.Checked = true then
memo1.Lines.Add(metalcore[3]);