Здравствуйте, уважаемые форумчане.
Делаю тест на Delphi. Но возник у меня вопрос:
Как сделать так, чтобы при выборе варианта ответа и нажатии на кнопку "Дальше" в метку выводилось сообщение: Правильно или Неправильно.
У меня пока не получается:
Вот пока что сделал по этому вопросу:
Код:
function NextQw : boolean;
begin
if not EOF(f) then
begin
// прочитать и вывести вопрос
Readln(f,buf);
// nq:=1;
Form1.Label1.Caption := buf;
// прочитать и вывести варианты ответов
// 1-й вариант
Readln(f,buf); // прочитать 1-й вариант ответа
Form1.RadioButton1.Caption := buf;
Readln(f,buf); // оценка за выбор этого ответа (1 - правильно, 0 - нет)
Form1.RadioButton1.Tag := StrToInt(buf);
//Form1.Label3.Caption:=IntToStr(Form1.RadioButton1.Tag);
//if Form1.RadioButton1.Tag=1 then Form1.Label3.Caption:='Правильно';
//if Form1.RadioButton1.Tag=0 then Form1.Label3.Caption:='Неправильно';
// 2-й вариант
Readln(f,buf);
Form1.RadioButton2.Caption := buf;
Readln(f,buf);
Form1.RadioButton2.Tag := StrToInt(buf);
//if Form1.RadioButton1.Tag=1 then Form1.Label3.Caption:='Правильно';
//if Form1.RadioButton1.Tag=0 then Form1.Label3.Caption:='Неправильно';
// 3-й вариант
Readln(f,buf);
Form1.RadioButton3.Caption := buf;
Readln(f,buf);
Form1.RadioButton3.Tag := StrToInt(buf);
//if Form1.RadioButton1.Tag=1 then Form1.Label3.Caption:='Правильно';
//if Form1.RadioButton1.Tag=0 then Form1.Label3.Caption:='Неправильно';
// счетчик общего количества вопросов
nq:= nq + 1;
Form1.Label2.Caption:='Вопрос '+IntToStr(nq)+' из 6';
// кнопка "Дальше" не доступна,
// пока не выбран один из вариантов ответа
Form1.Button1.Enabled := False;
// ни одна из радиокнопок не выбрана
Form1.RadioButton1.Checked := False;
Form1.RadioButton2.Checked := False;
Form1.RadioButton3.Checked := False;
NextQw := TRUE;
end
else NextQw := FALSE;
end;
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
buf: string;
i: integer;
begin
if Button1.Caption = 'Завершить' then Close;
// добавим оценку за выбранный вариант ответа
// оценка находится в свойстве Button.Tag
// Button.Tag = 1 - ответ правильный, 0 - нет
if RadioButton1.Checked then
right := right + RadioButton1.Tag;
if right=RadioButton1.Tag then
Label3.Caption:='Правильно!'
else
Label3.Caption:='Неправильно';
if RadioButton2.Checked then
right := right + RadioButton2.Tag;
if right=RadioButton2.Tag then
Label3.Caption:='Правильно!'
else
Label3.Caption:='Неправильно';
if RadioButton3.Checked then
right := right + RadioButton3.Tag;
if right=RadioButton3.Tag then
Label3.Caption:='Правильно!'
else
Label3.Caption:='Неправильно';
// вывести следующий вопрос
// NextQW читает и выводит вопрос
// NextQw = FALSE если в файле теста
// вопросов больше нет
if not NextQW then
begin
// здесь значение NextQw = FALSE
Button1.Caption := 'Завершить';
// скрыть переключатели и поля меток
RadioButton1.Visible := False;
RadioButton2.Visible := False;
RadioButton3.Visible := False;
Label2.Visible := False;
//Label3.Visible := False;
//Label4.Visible := False;
buf := 'Тестирование завершено.' + #13 +
'Правильных ответов: ' + IntToStr(right) +
' из ' + IntToStr(nq) + '.' + #13;
// выставить оценку
// right - кол-во правильных ответов
// i:=1; // номер уровня
// while (right < level[i]) and (i < 4) do
// inc(i);
// buf := buf + mes[i];
Label1.Align:=alCustom;
//Label1.Alignment:=[taCenter];
Label1.AutoSize := false;
Label1.Caption := buf;
end;
end;