Итак в последней — четвертой части, посвященной разработки тестов с помощью типизированных файлов в среде разработки Delphi, узнали как можно использовать в своих тестах различные форматы файлов. А вообще, чтобы вспомнить все части, что мы прошли по созданию тестов, достаточно нажать на данную ссылку. Мы уже прошли
- создание тестов (создание файлов, добавления сколь угодно ответов)
- открытие тестов (то есть их прохождение)
- определение правильности выбора вариантов ответа
- использование файлов в своих тестах разных расширений
В данной статье мы рассмотрим первую часть по редактированию тестов. То есть как нам открыть (подготовить) наш тест для дальнейшего его редактирования. То есть мы будем выгружать ответы и они уже будут выделятся те, которые мы указали правильными при составлении этих ответов и вопросов. Ну а в следующей серии статей по созданию тестов, я расскажу как отредактировать и сохранить изменения в данных тестах.
На форме у меня все тоже, единственное, что я добавил еще 2 кнопки
- TButton — 2 шт
Первая кнопка — открывает наш тест, вторая кнопка — переходит к следующему вопросу. Я уже рассказывал как делать выгрузку вопросов из файла, здесь практически тоже самое, только после каждого добавленного ответа нам необходимо сделать проверку является ли он правильным, если да, то тогда мы ставим галочку, что данный ответ правильный, чтобы пользователю при редактировании было видно, что редактировать. На событие OnCLick кнопки открыть тест для редактирования я написал следующий код
procedure TForm1.Button8Click(Sender: TObject);
var
count_o,i,l:integer;
pr_otvet:WideString;
begin
try
if OpenDialog1.Execute then
begin
k:=0;
AssignFile(F,OpenDialog1.FileName);
Reset(F);
Seek(F,cc);
if EOF(F)=True then
exit;
Read(F,Test);
count_o:=Test.count_otv;
pr_otvet:=Test.pr_ot;
for i:=0 to count_o-1 do
begin
seek(F,cc);
Read(F,Test);
Edit1.Text:=Test.Name_v;
CheckListBox1.Items.Add(Test.otv);
if Test.pr_ot<>'' then
CheckListBox1.Checked[StrToInt(Test.pr_ot)]:=True;
inc(cc);
end;
CloseFile(F);
end;
except
on e:Exception do
end;
end;
Как видите мы открываем здесь первый вопрос и к нему все ответы, если данный ответ правильный (а правильным у нас считается тот, в котором мы в поле pr_ot записывали номер правильного ответа) и если этот номер существует, то ставим галочку в ответах на данный номер. На событие OnClick кнопки далее для редактирования я написал следующий код
procedure TForm1.Button7Click(Sender: TObject);
var
counts,i:integer;
begin
Try
CheckListBox1.Items.Clear;
AssignFile(F,OpenDialog1.FileName);
Reset(F);
Seek(F,cc);
if EOF(F)=True then
exit;
Read(F,Test);
counts:=Test.count_otv;
for i:=0 to counts-1 do
begin
Seek(F,cc);
if EOF(F)=True then
exit;
Read(F,Test);
Edit1.Text:=Test.Name_v;
CheckListBox1.Items.Add(Test.otv);
if Test.pr_ot<>'' then
CheckListBox1.Checked[StrToInt(Test.pr_ot)]:=True;
inc(cc);
end;
//CloseFile(F);
except
on e:Exception do
end;
end;
Как видите все тоже самое. Если тест заканчивается мы ничего не делаем, а Вы можете там например вывести сообщение и так далее. В следующей статье про тесты на типизированных файлах, я расскажу как уже отредактировать эти данные.
Да, кстати, хочу заметить, что тюнинг вашего автомобиля вещь полезная, так как Вы улучшаете динамику своего автомобиля, управляемость, а самое главное внешний вид. Кстати, есть ваз 2106 тюнинг видео, в котором подробно описано и показано как правильно затюнинговать Ваш автомобиль, так что дерзайте и сделайте свой автомобиль еще лучше. |
Исходники статьи качаем тут
Автор статьи - Andrey53
Метки: создание тестов, тесты, тесты на Delphi
Кошмар) Смотрю на это оформление кода, на названия переменных — просто кошмар) Сколько тебе лет, если не секрет?
Хотя всё это надо пройти. Обязательно сохрани все свои статьи и исходники где-то в надажном месте. Лет через 5, если не забросишь Delphi и наберешься опыта, будет очень забавно смотреть на свои старые поделки, которыми ты наверняка сейчас так гордишься
Упрекать и давать советов не буду, со временем ты сам всё поймешь. Удачи!
Mr.Nothing каждый с чего-то начинает
Mr.Nothing
Если ты сам такой мега пупер умный, то написал бы что не так с названием его переменных, у тебя поди просто в одном месте чешится — надо упрекнуть кого-то в чем-то.
А вообще, название переменных дается логически привязанное к значению переменной. И не важно, что тебе не понравилось то, как он назвал их. Почитай-ка лучше книжку хорошую дружок.
Комментарий специально для Mr.Nothing, который засветился здесь три года назад.
Дружище, то что ты наплёл про оформление и название переменных — это тупой бред получившего образование программиста.
Цой говорил, что люди делятся на две категории: одни сидят на трубах, а другим нужны деньги.
А я скажу про программистов: 99% получивших образование программистов считают себя крутыми именно потому, что могут стандартифицированно оформлять код.
Спорить не буду. Такая работа нам нужна. Это создание мега приложений вроде 3D MAx большой командной. Однако, дружок. Такие программисты НИКОГДА не работают самостоятельно и ничего не создают сами. Таким программистам нужен Хозяин, который платит зарплату. Ещё такие программисты любят порассуждать на тему, как это круто писать на C++ или там на Асме.
А ведущий этого блога, один из единиц, что пишут в рамках обучения программированию что-то путнее.
Mr.Nothing, дружок, давно прошло то время, когда можно было соблазнить человека к программированию идиотским исходником «Hello World».
Посмотрел бы ты на код, который пишу я. А у меня есть программы, которую покупают люди, которыю взламывают хакеры. А у тебя таких программ нет. Всё потому что ты умеешь писать красивый с виду код.