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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.05.2015, 16:10   #21
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Показывай код )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.05.2015, 16:11   #22
manchester_alan
Форумчанин
 
Регистрация: 07.01.2015
Сообщений: 231
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Показывай код )
Код:
procedure TForm1.Button2Click(Sender: TObject);
begin
  Inc(QuestionNum);
  inc(question);
  lbl1.Visible:=true;
  Button2.Caption:='Äàëåå';
  GroupBox1.Color:=clYellow;

   case question of
   1:GroupBox1.Caption:='Âîïðîñ ¹1';
   2:GroupBox1.Caption:='Âîïðîñ ¹2';
   3:GroupBox1.Caption:='Âîïðîñ ¹3';
   4:GroupBox1.Caption:='Âîïðîñ ¹4';
   5:GroupBox1.Caption:='Âîïðîñ ¹5';
   6:GroupBox1.Caption:='Âîïðîñ ¹6';
   7:GroupBox1.Caption:='Âîïðîñ ¹7';
   8:GroupBox1.Caption:='Âîïðîñ ¹8';
   9:GroupBox1.Caption:='Âîïðîñ ¹9';
   10:GroupBox1.Caption:='Âîïðîñ ¹10';
   end;


   QuestionNum:=Random(diff.Count);
   RadioButton1.Checked:=False; RadioButton2.Checked:=False; RadioButton3.Checked:=False;
   memo1.Lines.Clear;
   memo1.Lines.Add(quest.ReadString(diff[QuestionNum],'quest',''));
     otvetstr:=(quest.ReadString(diff[QuestionNum],'otvet',''));
     RadioButton1.Caption:=quest.ReadString(diff[QuestionNum],'otvet','');
     RadioButton2.Caption:=quest.ReadString(diff[QuestionNum],'var1','');
     RadioButton3.Caption:=quest.ReadString(diff[QuestionNum],'var2','');
   diff.Delete(QuestionNum); 
end;
procedure TForm1.FormShow(Sender: TObject);
begin
QuestionNum := 0;
question:=0;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
   GroupBox1.Caption:='Âîïðîñ';
     RadioButton1.Caption:='Âàðèàíò îòâåòà';
     RadioButton2.Caption:='Âàðèàíò îòâåòà';
     RadioButton3.Caption:='Âàðèàíò îòâåòà';
   k:=0;
   Button2.Caption:='Íà÷àòü òåñò';
   lbl1.Visible:=False;
     diff:=TStringList.Create;
   quest:=TIniFile.Create(ExtractFilePath(Application.ExeName)+ 'âîïðîñû îòâåòû.ini');
   quest.ReadSections(diff);
end;

procedure TForm1.Button3Click(Sender: TObject);
var rez:TModalResult;
begin
 rez:=MessageDlg('Âûõîä :(' +#13+ 'Âû óâåðåíû?',mtWarning,[mbYes,mbNo],0);
 if rez=mryes then close;
end;
manchester_alan вне форума Ответить с цитированием
Старый 13.05.2015, 16:20   #23
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Inc(QuestionNum);
Это выкинь.
Цитата:
case question of
Это тоже.
Напиши лучше так:
Код:
QuestionNum:=Random(diff.Count);
   RadioButton1.Checked:=False; RadioButton2.Checked:=False; RadioButton3.Checked:=False;
GroupBox1.Caption:='Вопрос№ '+IntToStr(question);
...
А так вроде криминала не вижу...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.05.2015, 16:25   #24
manchester_alan
Форумчанин
 
Регистрация: 07.01.2015
Сообщений: 231
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Это выкинь.

Это тоже.
Напиши лучше так:
Код:
QuestionNum:=Random(diff.Count);
   RadioButton1.Checked:=False; RadioButton2.Checked:=False; RadioButton3.Checked:=False;
GroupBox1.Caption:='Вопрос№ '+IntToStr(question);
...
А так вроде криминала не вижу...
да изменил)) но все равно 1 и тот же вариант все время... а нельзя еще чтобы и варианты ответов тоже наугад выводились..?

в общем как сделать чтобы варианты ответов выводились наугад тоже?... Вопросы заново выводятся и тест заново начинается, это получилось...

Помогите пожалуйста с этим..

Последний раз редактировалось Stilet; 13.05.2015 в 19:50.
manchester_alan вне форума Ответить с цитированием
Старый 13.05.2015, 19:52   #25
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
нельзя еще чтобы и варианты ответов тоже наугад выводились..?
Я чет не понимаю как можно ответы наугад выводить
Почему не по порядку, как они в файле? Смысл?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.05.2015, 20:06   #26
manchester_alan
Форумчанин
 
Регистрация: 07.01.2015
Сообщений: 231
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Я чет не понимаю как можно ответы наугад выводить
Почему не по порядку, как они в файле? Смысл?
Ну в смысле чтоб тест не однообразен был... тогда получается правильные ответы будут только на radiobutton2 например... Ну вот я и спрашиваю, можно ли сделать, чтобы варианты ответов выдавались на разных radiobutton'ах...
manchester_alan вне форума Ответить с цитированием
Старый 13.05.2015, 20:36   #27
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А что за проблема перемешать их в файле?
И я бы вообще бы заменил твои радиобатоны на CheckListBox. Который позволит ввести тест с несколькими правильными вариантами. И после подгрузки этот чеклист можно перемешать в цикле конкретно так. Делается это довольно просто:
Код:
With CheckListBox.Items do for i:=0 to Count-1 do Exchange(Random(Count),Random(Count));
И порядок.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.05.2015, 20:53   #28
manchester_alan
Форумчанин
 
Регистрация: 07.01.2015
Сообщений: 231
По умолчанию

Спасибо))))))

Последний раз редактировалось manchester_alan; 13.05.2015 в 21:17.
manchester_alan вне форума Ответить с цитированием
Старый 13.05.2015, 21:32   #29
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А у тебя нет желания просто сесть и почитать литературу про ИНИ файлы?
Я выше дал пример с ReadSections. Есть еще функция ReadSectionValues, которая считает все что есть в определенной секции.
Код:
Читаем весь список вопросов-ответов
 ...ReadSectionValues(diff[QuestionNum],stlist)
Вносим их в избирательный бюллетень 
for i:=0 to stlist.Count-1 do
Если конечно имя параметра в списке не otvet
Добавляем его в бюллетень в случайное место
  if stlist.names[i]<>'otvet' then 
   CheckListBox1.Items.insert(random(CheckListBox1.Items.count),
      stlist.ValueFromIndex[i])
Где stlist:TStringList;

Читай же хелп. Там даже примеры есть. Чего стесняться?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.05.2015, 21:46   #30
manchester_alan
Форумчанин
 
Регистрация: 07.01.2015
Сообщений: 231
По умолчанию

да уже сделал, потом убрал свой вопрос... все равно спасибо)
manchester_alan вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
тест в delphi !2marselo12 Общие вопросы Delphi 8 05.12.2014 12:23
Тест на Delphi DedSero Фриланс 8 20.03.2013 07:42
Тест в Delphi 7 Ербулат Общие вопросы Delphi 3 13.06.2012 13:32
Тест на delphi Серый Рыйцарь Помощь студентам 1 11.05.2009 05:58
Программа-тест в Delphi) скиньте))а то програмку здавать преподу надо,и самой хочется понять Delphi Верчик Помощь студентам 9 02.03.2009 17:46