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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.12.2010, 20:19   #1
Ветас
Пользователь
 
Регистрация: 09.11.2007
Сообщений: 45
По умолчанию Просьба помочь с условием в тесте.

Здравствуйте, уважаемые форумчане.
Делаю тест на 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;
Ветас вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Просьба помочь Ditmar Microsoft Office Word 1 28.04.2010 13:11
Просьба помочь с задачей. kry Паскаль, Turbo Pascal, PascalABC.NET 9 11.01.2009 13:53
Просьба помочь новичку со списками. cbst Общие вопросы C/C++ 4 13.06.2008 19:32
Просьба помочь с состовлением формулы... c_zurab Microsoft Office Excel 1 11.03.2008 01:35
Просьба помочь с решением уравнения Stelix Помощь студентам 9 14.11.2007 19:00