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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.12.2014, 19:54   #1
neprogrammer
Пользователь
 
Регистрация: 16.12.2014
Сообщений: 19
По умолчанию Программа тестирования

почему не работает прога??
Вложения
Тип файла: rar Новая папка (2).rar (182.3 Кб, 19 просмотров)

Последний раз редактировалось neprogrammer; 16.12.2014 в 22:07.
neprogrammer вне форума Ответить с цитированием
Старый 16.12.2014, 20:18   #2
zvygin1964
Старожил
 
Аватар для zvygin1964
 
Регистрация: 19.06.2013
Сообщений: 2,469
По умолчанию

А у меня работает.
Репутация: полный "0"
zvygin1964 вне форума Ответить с цитированием
Старый 16.12.2014, 21:29   #3
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

Какая прога?
Человек_Борща вне форума Ответить с цитированием
Старый 16.12.2014, 21:30   #4
Iron Monk
Форумчанин
 
Аватар для Iron Monk
 
Регистрация: 05.10.2007
Сообщений: 478
По умолчанию

У меня тоже работает.
Iron Monk вне форума Ответить с цитированием
Старый 16.12.2014, 22:08   #5
neprogrammer
Пользователь
 
Регистрация: 16.12.2014
Сообщений: 19
По умолчанию

Цитата:
Сообщение от Iron Monk Посмотреть сообщение
У меня тоже работает.
он у вас загружает вопросы с *txt?

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Какая прога?
заново прикрепил

Последний раз редактировалось Stilet; 17.12.2014 в 07:45.
neprogrammer вне форума Ответить с цитированием
Старый 16.12.2014, 23:14   #6
kropotkina-alice
Форумчанин
 
Аватар для kropotkina-alice
 
Регистрация: 27.10.2014
Сообщений: 594
По умолчанию

Цитата:
Сообщение от neprogrammer Посмотреть сообщение
почему не работает прога??
Потому что ComboBox1 надо переименовать в TestBox
kropotkina-alice вне форума Ответить с цитированием
Старый 16.12.2014, 23:25   #7
Iron Monk
Форумчанин
 
Аватар для Iron Monk
 
Регистрация: 05.10.2007
Сообщений: 478
По умолчанию

Цитата:
Сообщение от kropotkina-alice Посмотреть сообщение
Потому что ComboBox1 надо переименовать в TestBox
Потому что - в соседней теме описано:
Код:
procedure TForm1.FormCreate(Sender: TObject);
.......
  end;
  ComboBox1.ItemIndex:= 0;
  LoadTest(ComboBox1.ItemIndex);
end;
Iron Monk вне форума Ответить с цитированием
Старый 16.12.2014, 23:32   #8
kropotkina-alice
Форумчанин
 
Аватар для kropotkina-alice
 
Регистрация: 27.10.2014
Сообщений: 594
По умолчанию

Этот вариант у него вообще не работает. Незаметно?
А в соседней теме у него уже другой вопрос. Тоже незаметно?
kropotkina-alice вне форума Ответить с цитированием
Старый 16.12.2014, 23:44   #9
Iron Monk
Форумчанин
 
Аватар для Iron Monk
 
Регистрация: 05.10.2007
Сообщений: 478
По умолчанию

Цитата:
Сообщение от kropotkina-alice Посмотреть сообщение
Этот вариант у него вообще не работает. Незаметно?
А в соседней теме у него уже другой вопрос. Тоже незаметно?
Или мы о разном, или ТС постоянно меняет сорцы - в последнем о TestBox нет и намека...
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    RadioGroup1: TRadioGroup;
    Button1: TButton;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    ComboBox1: TComboBox;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure LoadTest(Index: integer);
    procedure LoadQuestion(Index: integer);
    procedure TestBoxCloseUp(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 const
  TestName='Test_'; // имя файла теста
  max=1000; // максимальное количесво вопросов
var
  Form1: TForm1;
  QuestionText: array [0..max] of string; // текст вопроса
  AnswerQuestion: array [0..max] of byte; // правильный вариант ответа
  QuestionText1: array [0..max] of string;// первый вопрос
  QuestionText2: array [0..max] of string;// второй вопрос
  QuestionText3: array [0..max] of string;// третий вопрос
  Ball: integer=0;                        // оценка
  now: integer=0;                         // текущий вопрос

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
 if AnswerQuestion[now]=RadioGroup1.ItemIndex+1 then  // сравниваем значение ответа и выбранного значения
  inc(ball);
  RadioGroup1.ItemIndex:=-1;  // убираем выдаление с группы ответов
  inc(now);                   // увеличиваем вопрос на 1+
  LoadQuestion(now);          // загружаем его
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  s: Tstrings;
  i: Integer;
begin
i:=0;
  while FileExists(ExtractFilePath(application.ExeName)+TestName+inttostr(i)+'.txt') do  // проверяем файлы тестов
  begin
  application.ProcessMessages;  // что б не тормозило
  s:=tstringlist.Create;        // создаем переменную
  s.LoadFromFile(ExtractFilePath(application.ExeName)+TestName+inttostr(i)+'.txt'); // загружаем файл
    if s.Text<>'' then  // если не пуст то
    ComboBox1.Items.Add(s.Strings[0]); // добавляем в группу тестов название теста
  s.Free;  // уничтожаем переменную
  inc(i);  // увеличиваем счетчик
  end;
end;
procedure TForm1.LoadTest(Index: integer);   // загружаем выбранный тест
var
  s: Tstrings;
  j, h: Integer;
begin
  h:=0;
  s:=tstringlist.Create;  // создаем переменную
  s.LoadFromFile(ExtractFilePath(application.ExeName)+TestName+inttostr(Index)+'.txt'); // загружаем
    if s.Text<>'' then  // если не пустая то
    begin
    form1.Caption:=s.Strings[0]; // название теста
      for j := 1 to s.Count - 1 do // начинаем присваивать значения
      begin
        if s.Strings[j]='__________' then  // это разделитель который мы ищем
        begin
        QuestionText[h]:=s.Strings[j+1]; // текст вопроса
        QuestionText1[h]:=s.Strings[j+2];// текст первого вариант ответа
        QuestionText2[h]:=s.Strings[j+3];// текст второго варианта ответа
        QuestionText3[h]:=s.Strings[j+4];// текст третьего варианта ответа
        AnswerQuestion[h]:=strtoint(s.Strings[j+5]); // номер ответа
        inc(h); // увеличиваем счетчик для того что бы записывать в новый элемент массива
        end;
      end;
    end;
  s.Free; // уничтожаем переменную
  LoadQuestion(now);// загружаем вопрос здесь он всегда = 0
end;
procedure TForm1.TestBoxCloseUp(Sender: TObject);
begin
  // при выборе теста обнуляем все значения
  ball:=0;
  now:=0;
  button1.Enabled:=true;
  LoadTest(ComboBox1.ItemIndex);// загружаем выбранный тест
end;
procedure TForm1.LoadQuestion(Index: integer);
begin
  if QuestionText[Index]<>'' then// если выбранный вопрос существует то грузим его
  begin
  Radiogroup1.Items.Clear;// очищаем поле ответов
  LAbel1.Caption:=QuestionText[Index];// задаем запрос
  Radiogroup1.Items.Add(QuestionText1[index]);// добавляем ответы
  Radiogroup1.Items.Add(QuestionText2[index]);
 Radiogroup1.Items.Add(QuestionText3[index]);
  end
  else // иначе сообщаем что тест завершен
  begin
  showmessage('Тест завершен'+#13+'Правильных ответов: '+inttostr(ball)); // сообщение что типа тест окончен и выдаем количесво правильных ответов
  button1.Enabled:=false; // делаем неактивной кнопку что бы не тыкали
  end;
end;
end.
И, таки, работает...

Последний раз редактировалось Iron Monk; 16.12.2014 в 23:47. Причина: add picture
Iron Monk вне форума Ответить с цитированием
Старый 16.12.2014, 23:50   #10
kropotkina-alice
Форумчанин
 
Аватар для kropotkina-alice
 
Регистрация: 27.10.2014
Сообщений: 594
По умолчанию

То есть вы хотите сказать, что это я скопипастила бог знает откуда, а не из вашего поста?
Код:
procedure TForm1.TestBoxCloseUp(Sender: TObject);
begin
  // при выборе теста обнуляем все значения
  ball:=0;
  now:=0;
  button1.Enabled:=true;
  LoadTest(ComboBox1.ItemIndex);// загружаем выбранный тест
end;
Поменяйте в листинге все упоминания о ComboBox1 на TestBox и программа заработает, но без автоматического выбора теста при загрузке, о чём пошла речь в соседней теме...

Последний раз редактировалось kropotkina-alice; 16.12.2014 в 23:52.
kropotkina-alice вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа тестирования ПО Vaik00 Помощь студентам 8 26.04.2013 09:02
программа тестирования indira2005 БД в Delphi 0 10.04.2012 20:30
Программа тестирования Rashgild Помощь студентам 2 14.07.2011 04:10
Программа тестирования dani92 Общие вопросы Delphi 5 26.01.2010 11:05
Программа Тестирования. Spiker01 Паскаль, Turbo Pascal, PascalABC.NET 3 06.01.2009 13:14