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

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

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

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 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,538
По умолчанию

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

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

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


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


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS