Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.07.2016, 13:08   #1
allmost
 
Регистрация: 21.07.2016
Сообщений: 6
По умолчанию Нужна помощь с CheckBox

Добрый день, надо по работе сделать опрос из 15 вопросов для получения пропуска. Вариантов может быть несколько. Застрял на первом же варианте. К сожалению знаком с делфи 2 дня. Поэтому ничего не понимаю, помогите пож-та.

К примеру, в первом вопросе правильные 1,2,4 и 5 ответы. Я хочу, что бы при их выборе загорался зеленый (Green1)квадратик сверху а не красный(Red1).
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
if CheckBox1.checked and CheckBox2.Checked and CheckBox4.Checked and CheckBox5.Checked then
begin
CheckBox1.Color:=clGreen;CheckBox2.Color:=clGreen;CheckBox4.Color:=clGreen;CheckBox5.Color:=clGreen;
Green1.Visible:=true;
end;
begin
if CheckBox1.Checked and CheckBox2.Checked and CheckBox3.Checked and CheckBox4.Checked and CheckBox5.Checked and CheckBox6.Checked then
begin
CheckBox1.Color:=clGreen;CheckBox2.Color:=clGreen;CheckBox4.Color:=clGreen;CheckBox5.Color:=clGreen;
CheckBox3.Color:=clRed;CheckBox6.Color:=clRed;
Red1.Visible:=true;

end
else
begin
Red1.Visible:=true;
CheckBox1.Color:=clGreen;CheckBox2.Color:=clGreen;CheckBox4.Color:=clGreen;CheckBox5.Color:=clGreen;
CheckBox3.Color:=clRed;CheckBox6.Color:=clRed;
end;
end;
end;
end.
Изображения
Тип файла: jpg Безымянный.jpg (100.2 Кб, 152 просмотров)

Последний раз редактировалось Аватар; 28.07.2016 в 13:18.
allmost вне форума Ответить с цитированием
Старый 21.07.2016, 14:20   #2
allmost
 
Регистрация: 21.07.2016
Сообщений: 6
По умолчанию

Все я сам отдуплился, надо было в строке
if CheckBox1.Checked and CheckBox2.Checked and CheckBox3.Checked and CheckBox4.Checked and CheckBox5.Checked and CheckBox6.Checked(дописать)and not CheckBox3.Checked и.т.д. then
allmost вне форума Ответить с цитированием
Старый 21.07.2016, 14:32   #3
Gregor
Форумчанин
 
Регистрация: 24.10.2007
Сообщений: 208
По умолчанию

к каждому из вопросов привяжи массив из 6 элементов с правильными ответами после нажатия на кнопку сравнивай массив с текущими ответами с прикрепленными массивом . а то так замучаешься писать if else
интенсивно гуглю прежде чем задать вопрос
Gregor вне форума Ответить с цитированием
Старый 21.07.2016, 14:56   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

НАДО?!
при нажатии какой-то кнопки(Button1) высвечивались

1)правильные отметки (галочка у правильного ответа) (зеленым)
2) неправильные отметки (галочка у неверного ответа) (красным)
3) НЕправильные пропуски (нет галочки у ВЕРНОГО ответа) красным?????
4) правильные пропуски (нет галочки у неверного ответа) зеленым????

ВАРИАНТ ОТВЕТА.
у всех Сheckbox есть свойство tag которое сделано специально для программиста.
Там он может хранить любую нужную ему информацию.

Всем правильным ответам (Checkbox-ам) ставим это свойство (tag) =1
и оставляем нетронутым для всех прочих.

чтобы не писать много раз одинаковые проверки пдля КАЖДОГО CheckBox
пишем такую процедуру
Код:
  procedure SetcolorCheck(chk: TCheckBox);
  begin
       if chk.Checked // есть галочка 
          and (chk.tag=1) // и ответ есть верный 
  then chk.color:=clgreen // ставим нужный цвет
  else if chk.Checked
          and (chk.tag=0)
  then chk.Color:=clRed
  else if ( not chk.checked)
          and (chk.tag=1)
  then chk.color:=clRed
  else if ( not chk.Checked)
          and (chk.tag=0)
  then chk.color:=clGreen
  else chk.color:=clBlue; //ну УВИДИМ совсем невероятный случай     
  end;
а потом везде где надо используем ее
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin

  SetColorCheck(CheckBox1);
  SetColorCheck(CheckBox2);
 .... //Сейчас мне скажут что все это надо в цикл 
( человек видит программированне второй раз в жизни
  и еще не умеет читать программу на лету

  дайте ему постепенно понять что же ему НУЖНО сделать в его программе)
end;
Что такое Red1 /Green1 пока не понял.
Точнее понял это относится к "квадратикам" вверху.
НО правил их смены(точнее смены их цветов) не понял.

Кстати скорее всего
тоже можно не делать три разных квадратика(Gray|Green|Red)
и манипулировать их видимостью (особенно забывая при этом скрывать ненужные)
а просто менять цвет у одного аналогично тому как делаешь у Checkbox.

продолжение цикл и прочее ... следует.
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 21.07.2016 в 14:59.
evg_m вне форума Ответить с цитированием
Старый 21.07.2016, 16:28   #5
allmost
 
Регистрация: 21.07.2016
Сообщений: 6
По умолчанию

Ого сколько всего, спасибо большое. Я чувствовал, что я делаю все слишком прямолинейно. Так гораздо проще, сейчас буду пробовать реализовывать, чертовски интересно оказалось программировать, хотя это уровень детского сада и я понимаю это. Надо еще будет как-то сохранять результаты научиться делать и таймер забабахать, очень любопытно и интересно так все проектировать. Одни эмоции)
allmost вне форума Ответить с цитированием
Старый 28.07.2016, 12:33   #6
allmost
 
Регистрация: 21.07.2016
Сообщений: 6
По умолчанию

Все, всем спасибо, программу сделал. Но теперь нужна другая. Вот я сделал новую. Надо чтобы при нажатии на одном компьютере передавались данные на другой компьютер, то есть, если кто-то нажимает лампочку на одном компьютере, то на другом компьютере она тоже загоралась. Компьютере подсоединены по локальной сети. Подскажите пож-та как это можно реализовать?

И еще, может кто знает, как сделать так, что бы внизу плашка с программой сворачивалась в трей, а приложение нет - продолжало работать?
Вложения
Тип файла: zip Who.zip (282.4 Кб, 7 просмотров)

Последний раз редактировалось Аватар; 28.07.2016 в 13:19.
allmost вне форума Ответить с цитированием
Старый 28.07.2016, 13:14   #7
TaLadno
Форумчанин
 
Регистрация: 03.06.2015
Сообщений: 393
По умолчанию

Цитата:
Сообщение от allmost Посмотреть сообщение
К сожалению знаком с делфи 2 дня. Поэтому ничего не понимаю, помогите пож-та.
Ну так потрать не 2 дня, а хотя бы 2 недели. Оно же тебе надо, а не мне

Цитата:
Сообщение от allmost Посмотреть сообщение
И еще, может кто знает, как сделать так, что бы внизу плашка с программой сворачивалась в трей, а приложение нет - продолжало работать?
TTrayIcon
http://docwiki.embarcadero.com/CodeE...ayIcon_(Delphi)

пс... когда выливаешь сюды свой код, юзай эту кнопку, тыжпрограммист, блин
Вы там держитесь.
TaLadno вне форума Ответить с цитированием
Старый 28.07.2016, 13:47   #8
allmost
 
Регистрация: 21.07.2016
Сообщений: 6
По умолчанию

Да какой там программист, так шантрапа взбалмошная. Разобрался с треем, установил компонент CoolIconTray. С сетью ищу как сделать, но если кто знает, я был бы благодарен.

Последний раз редактировалось allmost; 28.07.2016 в 14:35.
allmost вне форума Ответить с цитированием
Старый 28.07.2016, 14:02   #9
TaLadno
Форумчанин
 
Регистрация: 03.06.2015
Сообщений: 393
По умолчанию

А что надо с сетью? Могу же ссылку и на Indy дать
Вы там держитесь.
TaLadno вне форума Ответить с цитированием
Старый 28.07.2016, 14:08   #10
allmost
 
Регистрация: 21.07.2016
Сообщений: 6
По умолчанию

Цитата:
Надо чтобы при нажатии на одном компьютере передавались данные на другой компьютер, то есть, если кто-то нажимает лампочку на одном компьютере, то на другом компьютере она тоже загоралась. Компьютере подсоединены по локальной сети. Подскажите пож-та как это можно реализовать?


Я имею в виду вот это про сеть.
allmost вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужна помощь с checkbox и его состоянием Mik92 Общие вопросы Delphi 20 24.12.2014 18:15
Как выполнить функцию в случае нажатия на CheckBox, если данный CheckBox был добавлен через код? PAMAC Microsoft Office Excel 7 21.02.2013 15:33
Очень нужна помощь c матрицами, макросами в Excel. Заранее благодарен(поверьте, очень-очень нужна помощь) Farridjan Помощь студентам 1 03.07.2009 12:24
Очень нужна помощь с написанием программы... срочно(буду благодарен за помощь) 5Paladin5 Помощь студентам 3 02.07.2009 09:12