Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Технологии > Помощь студентам
Регистрация

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 22.05.2007, 18:41   #1
Kamikadze_666
Пользователь
 
Аватар для Kamikadze_666
 
Регистрация: 11.05.2007
Адрес: Россия, г. Хабаровск
Сообщений: 20
Репутация: 10
Вопрос Подскажите, как сделать так, чтобы тест можно было повторно пройти не перезагружая пр

Привет всем! У меня вот такая проблема возникла:
Сделал я тест, он все отлично работает, только он одноразовый!!! Т.е. тест можно пройти только один раз, повторно нельзя (можно только если программу перезапустить)! Подскажите, как сделать так, чтобы тест можно было повторно пройти не перезагружая программу???

Вот часть моей проги, где возникает эта проблема:

procedure TForm2.Button1Click(Sender: TObject);
begin
if edit2.Text='' then
ShowMessage('Не Введена Фамилия')
else
begin
Label1.Visible:=False;
Timer1.Enabled:=true;
RadioGroup1.ItemIndex:=clActiveCapt ion;
GroupBox1.Caption:='Вопрос№1';
Label2.Visible:=false;
Button1.Enabled:=false;
GroupBox1.Visible:=true;
RadioGroup1.Visible:=true;
Button2.Enabled:=true;
Button3.Enabled:=false;
ProgressBar1.Visible:=true;
Label3.Visible:=false;
Edit2.Visible:=false;
Memo1.Lines.Text:='Вопрос 1';
RadioGroup1.Items.Strings[0]:='Ответ 1';
RadioGroup1.Items.Strings[1]:='Ответ 2';
RadioGroup1.Items.Strings[2]:='Ответ 3';
end;
end;

procedure TForm2.Button2Click(Sender: TObject);
begin
case Button2.Tag of
0: begin
// Ответ на вопрос № 1
ProgressBar1.Position:=0;
if RadioGroup1.ItemIndex=0 then
begin
// Edit1.Text:='1';
IntToStr(StrToInt(edit1.Text)+1);
Edit1.Text:=IntToStr(StrToInt(edit1 .Text)+1);
end
else
RadioGroup1.ItemIndex:=clActiveCapt ion;
GroupBox1.Caption:='Вопрос№2';
Memo1.Lines.Text:='Вопрос 2';
RadioGroup1.Items.Strings[0]:='Ответ 1';
RadioGroup1.Items.Strings[1]:='Ответ 2';
RadioGroup1.Items.Strings[2]:='Ответ 3';
Button2.Tag:=Button2.Tag+1;
end;
1: begin
// Ответ на вопрос № 2
ProgressBar1.Position:=0;
if RadioGroup1.ItemIndex=1 then
begin
IntToStr(StrToInt(edit1.Text)+1);
Edit1.Text:=IntToStr(StrToInt(edit1 .Text)+1);
end
else
RadioGroup1.ItemIndex:=clActiveCapt ion;
GroupBox1.Caption:='Вопрос№3';
Memo1.Lines.Text:='Вопрос 3';
RadioGroup1.Items.Strings[0]:='Ответ 1';
RadioGroup1.Items.Strings[1]:='Ответ 2';
RadioGroup1.Items.Strings[2]:='Ответ 3';
Button2.Tag:=Button2.Tag+1;
end;
2: begin
// Ответ на вопрос № 3
ProgressBar1.Position:=0;
if RadioGroup1.ItemIndex=2 then
begin
IntToStr(StrToInt(edit1.Text)+1);
Edit1.Text:=IntToStr(StrToInt(edit1 .Text)+1);
end
else
...............
RadioGroup1.ItemIndex:=clActiveCapt ion;
GroupBox1.Caption:='Вопрос№10';
Memo1.Lines.Text:='Вопрос 10';
RadioGroup1.Items.Strings[0]:='Ответ 1';
RadioGroup1.Items.Strings[1]:='Ответ 2';
RadioGroup1.Items.Strings[2]:='Ответ 3';
Button2.Tag:=Button2.Tag+1;
end;
9: begin
//
ProgressBar1.Position:=0;
if RadioGroup1.ItemIndex=0 then
begin
IntToStr(StrToInt(edit1.Text)+1);
Edit1.Text:=IntToStr(StrToInt(edit1 .Text)+1);
end;

Button1.Enabled:=True;
Button2.Enabled:=false;
Button3.Enabled:=true;
Edit1.Visible:=true;
Timer1.Enabled:=false;
Label3.Visible:=true;
Label2.Visible:=True;
edit1.ReadOnly:=true;
Edit2.Visible:=true;
label4.Visible:=false;
ProgressBar1.Visible:=false;
GroupBox1.Visible:=false;
RadioGroup1.Visible:=false;
Edit1.Visible:=False;
Label1.Visible:=True;
end;
end;
end;

Если ты проходишь тест повторно, то он выдает только первый вопрос, а при нажатии на Батон2 он переходит аж на строку Button1.Enabled:=True;
а Case .. of пропускает!!!
Kamikadze_666 вне форума   Ответить с цитированием
Старый 22.05.2007, 20:09   #2
pu4koff
ПрофессионалФорумчанин
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,496
Репутация: 3616
По умолчанию

а ты Button2.Tag в 0 выставил заново, чтобы case не проскакивал?
pu4koff вне форума   Ответить с цитированием
Старый 23.05.2007, 02:48   #3
Kamikadze_666
Пользователь
 
Аватар для Kamikadze_666
 
Регистрация: 11.05.2007
Адрес: Россия, г. Хабаровск
Сообщений: 20
Репутация: 10
По умолчанию

Ешкин кот!!! Точно!!! Не подумал!!! Спасибо, чувак!!!
Kamikadze_666 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать так, чтобы форму можно было тостать не только за заголовок? Никки Общие вопросы Delphi 1 04.09.2008 14:34
Как сделать так, чтобы переключение между окнами было автоматическим? barand Свободное общение 9 07.07.2008 23:54
Как сделать, чтобы программа запускалась один раз, т.е. повторно запустить нельзя??? Kamikadze_666 Безопасность, Шифрование 7 31.07.2007 08:34
Как сделать так чтобы окно формы всегда было поверх остальных окон? HelloZAPOR Общие вопросы Delphi 5 23.07.2007 08:05
сделать так, чтобы CheckBox и CheckListBox нельзя было отмечать вручную Washington Компоненты Delphi 7 24.03.2007 17:59


15:28.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.