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

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

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

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

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

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

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

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

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,520
По умолчанию

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

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


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать так, чтобы форму можно было тостать не только за заголовок? Никки Общие вопросы 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 16:59