|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
02.11.2008, 11:11 | #1 |
Форумчанин
Регистрация: 30.03.2008
Сообщений: 392
|
Модернизировать код, сделать его быстрее
zvyk:=TCheckListBox.Create(Self);
Zvyk.Parent:=Panel1; zvyk.ParentColor:=True; zvyk.Font.Size:=14; zvyk.Left:=68; zvyk.Top:=200; zvyk.Items.Add('1'); zvyk.Items.Add('2'); zvyk.Items.Add('3'); zvyk.Items.Add('4'); zvyk.Items.Add('5'); далее procedure TForm2.Proverka7Click(Sender:Tobjec t); begin if (zvyk.Checked[0]) and not (zvyk.Checked[1]) and not (zvyk.Checked[2]) and (zvyk.Checked[3]) and not (zvyk.Checked[4]) then showmessage('Молодец') else showmessage('Внимательно прочитай задание'); end; Каким образом можно сделать проверку лучше? помогите пожалуйста.
Программирование - это великое искусство... Такое же как например и живопись!
|
02.11.2008, 11:57 | #2 |
Форумчанин
Регистрация: 22.09.2007
Сообщений: 540
|
Дайте исходник посмотреть...
Может через конструкцию CASE OF получится? Последний раз редактировалось Arkuz; 02.11.2008 в 12:06. |
02.11.2008, 12:12 | #3 |
Форумчанин
Регистрация: 30.03.2008
Сообщений: 392
|
выше же исходник...
каким образом (с case?) можно выполнять проверку отмечены ли итемы галочкой по-другому, и если 0 и 3 итемы отмечены, а остальные нет?
Программирование - это великое искусство... Такое же как например и живопись!
|
02.11.2008, 12:16 | #4 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Например, можно пойти по такому пути - обрабатывать событие CheckListBox1ClickCheck и соответствующим образом изменять значение некоей переменной, пусть CHK. Величина изменения разная для всех итемсов и равна двойке в степени (индекс итемса).
То есть, если изменяется состояние zvyk.Checked[3], то если CHECKED - CHK:=CHK+8, если NOT CHECKED, то CHK:=CHK-8. Тогда ваш анализ сведется к такому: Код:
Последний раз редактировалось mihali4; 02.11.2008 в 12:19. |
02.11.2008, 12:29 | #5 |
Форумчанин
Регистрация: 30.03.2008
Сообщений: 392
|
а если мне надо писать какой итем неправильно отметили, а я не хочу писать:
s:=''; if (zvyk.Checked[1])=true then s:=s+'Не правильно отметили 1 итем'; if (zvyk.Checked[2])=true then s:=s+'...'; if s<>'' then showmessage(s) else showmessage('OK'); можно сделать по-другому?
Программирование - это великое искусство... Такое же как например и живопись!
|
03.11.2008, 19:23 | #6 |
Форумчанин
Регистрация: 08.10.2008
Сообщений: 668
|
ИМХО добавлятьлучше так Memo1.Lines.AddStrings();
Вы определитесь чего хотите. Мона как вариант, как в JS все ответы в массив загнать и проверять по массиву. правильных ответов. Тогда через цикл.
Don't worry be happy
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Нашёл код не поможете доработать его | eldar | Работа с сетью в Delphi | 6 | 24.01.2010 21:27 |
Как можно быстрее прочитать данные | Bagirli | Общие вопросы Delphi | 6 | 18.10.2008 11:31 |
Предлагаю модернизировать структуру форумов | Aero_cobra | О форуме и сайтах клуба | 12 | 12.03.2008 14:26 |
Как запустить приложение, дождаться его исполнения и только потом выполнять код? | il76 | Win Api | 6 | 19.07.2007 14:00 |
Как при скрытом чужом окне сделать его дочерние окна(сообщения) видимыми ? | Starwarrior | Win Api | 1 | 20.03.2007 09:51 |