Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Работа с txt


Страницы:   1 2

Алеша ©   (2011-05-17 18:31:00) 

Доброго времени суток друзья, я новичок в делфи, и по этому наверное бывалый для Вас, но интересный для меня вопрос.
Так вот.
Я написал тест, в нем было всего 4 вопроса и я выполнил его так:

procedure TForm3.Button1Click(Sender: TObject);
begin
if RadioButton1.Checked=true then
ball:= ball+1
else
ball:= ball;
Label1.Caption:='Выбирите, какое значение означает, что все необходимые для обслуживания интерфейса события генерируются программой?';
RadioButton1.Caption:= 'DragCursor';
RadioButton2.Caption:= 'dmManual';
RadioButton3.Caption:= 'dmAutomatic';
RadioButton4.Caption:= 'TDragMode';
Button1.Visible:= false;
Button2.Top:= Button1.Top;
Button2.Left:= Button1.Left;
Button2.Visible:= true;
num:= num+1;
Label2.Caption:= IntToStr(ball);
Label5.Caption:= 'Вопрос номер: ' + IntToStr(num);
RadioButton1.Checked:= false;
RadioButton2.Checked:= false;
RadioButton3.Checked:= false;
RadioButton4.Checked:= false;
end;

procedure TForm3.Button2Click(Sender: TObject);
begin
if RadioButton2.Checked=true then
ball:= ball+1
else
ball:= ball;
Label1.Caption:='Выбирите, какое значение означает, что события инициируются свойствами и методами компонентов?';
RadioButton1.Caption:= 'TDragMode';
RadioButton2.Caption:= 'dmManual';
RadioButton3.Caption:= 'dmAutomatic';
RadioButton4.Caption:= 'DragCursor';
Button2.Visible:= false;
Button3.Top:= Button1.Top;
Button3.Left:= Button1.Left;
Button3.Visible:= true;
num:= num+1;
Label2.Caption:= IntToStr(ball);
Label5.Caption:= 'Вопрос номер: ' + IntToStr(num);
RadioButton1.Checked:= false;
RadioButton2.Checked:= false;
RadioButton3.Checked:= false;
RadioButton4.Checked:= false;
end;

procedure TForm3.Button3Click(Sender: TObject);
begin
if RadioButton3.Checked=true then
ball:= ball+1
else
ball:= ball;
Label1.Caption:='Выбирите, какой компонент определяет вид указателя мыши в момент, когда над компонентом “протаскиваются данные”?';
RadioButton1.Caption:= 'dmManual';
RadioButton2.Caption:= 'TDragMode';
RadioButton3.Caption:= 'dmAutomatic';
RadioButton4.Caption:= 'DragCursor';
Button3.Visible:= false;
Button4.Top:= Button1.Top;
Button4.Left:= Button1.Left;
Button4.Visible:= true;
num:= num+1;
Label2.Caption:= IntToStr(ball);
Label5.Caption:= 'Вопрос номер: ' + IntToStr(num);
RadioButton1.Checked:= false;
RadioButton2.Checked:= false;
RadioButton3.Checked:= false;
RadioButton4.Checked:= false;
end;

procedure TForm3.Button4Click(Sender: TObject);
begin
if RadioButton4.Checked=true then
ball:= ball+1
else
ball:= ball;
Label1.Caption:='Выбирите, какое свойство компонента TDragState определяет что объект только что покинул компонент или была отпущена кнопка мыши?';
RadioButton1.Caption:= 'dsDragLeave';
RadioButton2.Caption:= 'dsManual';
RadioButton3.Caption:= 'dsDragMove';
RadioButton4.Caption:= 'dsDragEnter';
Button4.Visible:= false;
Button5.Top:= Button1.Top;
Button5.Left:= Button1.Left;
Button5.Visible:= true;
num:= num+1;
Label2.Caption:= IntToStr(ball);
Label5.Caption:= 'Вопрос номер: ' + IntToStr(num);
RadioButton1.Checked:= false;
RadioButton2.Checked:= false;
RadioButton3.Checked:= false;
RadioButton4.Checked:= false;
end;

procedure TForm3.Button5Click(Sender: TObject);
begin
if RadioButton1.Checked= true then
ball:= ball+1
else
ball:= ball;
Label2.Caption:= IntToStr(ball);
Label5.Caption:= 'Вопрос номер: ' + IntToStr(num);
if (ball <= 5) and  (ball>= 4)
then ocen:= 3;
if ball < 4
then ocen:= 2;
Label4.Caption:= IntToStr(ocen);
Form6.Visible:= true;
Form3.Hide;
end;

procedure TForm3.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Form1.Close;
end;

procedure TForm3.FormCreate(Sender: TObject);
begin
Label2.Caption:= IntToStr(ball);
Label5.Caption:= 'Вопрос номер: ' + IntToStr(num);
end;

procedure TForm3.FormShow(Sender: TObject);
begin
ball:= 0;
num:=1;
Label2.Caption:= '';
Label4.Caption:= '';
Label5.Caption:= 'Вопрос номер: ' + IntToStr(num);
Button1.Visible:= true;
Timer1.Enabled:=True;
TimeVal := Time + 1 / (24 * 60);
end;

procedure TForm3.Timer1Timer(Sender: TObject);
var
Temp : TTime;
begin
Temp := TimeVal - Time;
Label7.Caption := TimeToStr(Temp);
if Frac(Temp) <= 0 then begin
ball:= ball;
Label2.Caption:= IntToStr(ball);
Label5.Caption:= 'Вопрос номер: ' + IntToStr(num);
if (ball <= 5) and  (ball>= 4)
then ocen:= 3;
if ball < 4
then ocen:= 2;
Label4.Caption:= IntToStr(ocen);
Form6.Visible:= true;
Form3.Hide;
end;
end;
end.


Чтобы Вам не читать зря кратко:
Создал столько кнопок сколько и вопросов и после ответа на вопрос этой же кнопкой скрываются одни поля открываются другие поля с другими вопросами и так далее, короче все примитивно потому что первый раз я все буквально и прямолинейно понял.

Теперь сам вопрос.
У меня теперь задача сделать тест с 70 вопросами, так как делал я это ад - сколько писанины. Вот я и подумал а что если выбирать данные по вопросам вариантам ответов и правильных ключей из txt-файла. Но как это сделать не знаю, Если кто не совсем равнодушный к ночевкам помогите пожалуйста, желательно на примерах, чтоб до меня дошло быстрей и я Вас уважаемые знатоки не дергал по пустякам. Спасибо за внимание. Заранее благодарен всем!!!

P.S. Там в низу нет моего делфи и ОС. У меня Win 7 и Delphi 2007.


Dennis I. Komarov   (2011-05-27 09:23:00) [1]


> Число вопросов заранее известно и это число не большое.
> ini тут как раз один из оптимальных вариантов решения.


Сегодня может быть, завтра уже нет, появятся картинки в вопросах, вырианты с не единственными решениями и т.п.
З.Ы. И не надо плоскогубцами забивать гвозди...


Gu   (2011-05-27 02:21:00) [2]

>> Ini использовать не стоит, т.к. принято что это структура для хранения настроек программы.

Число вопросов заранее известно и это число не большое. ini тут как раз один из оптимальных вариантов решения. xml думаю тут не нужен, т.к. его основное применение - мультиплатформенность и универсальность передачи инфы между приложениями. тулт либо текстовые файлы, либо типизированые, либо простые БД, типа dbf. Вариант с БД можете построить на моем примере, который давал тут: http://www.delphimaster.ru/cgi-bin/forum.pl?id=1304663468&n=3, компонент про который там говорю и его исходник для D7-Xe можно скачать тут: http://turbobit.net/ds4i2djh0p36.html


Dennis I. Komarov   (2011-05-25 17:02:00) [3]


> экземпляра класса в Design-time

упс, в run-timе


Dennis I. Komarov   (2011-05-25 13:46:00) [4]

Ничерта там полезного нету...
1. Разобраться с созданием экземпляра класса в Design-time
2. Определиться, с местом хранения и научиться обрабатывать эти данные. Я рекомендую XML, хотя и простого текста тут хватит за глаза. Ini использовать не стоит, т.к. принято что это структура для хранения настроек программы.


Алеша   (2011-05-24 21:53:00) [5]

Большое спасибо за исходник, очень помог, спасибо за помощь


Gu   (2011-05-20 00:51:00) [6]

Я набросал для вас тестовую программку: создает и редактирует ini файл с вопросами и вариантами ответов, проводит по ним тестирование (тестовое).

Написана на D2010, но на вашей дельфе тоже должна открыться.
В тексте сделал коменты на русском для вас. Ini прилагается с 4я вопросами, но можете его удалить и свои вопросы добавить.

Удачи.

Скачать (exe+исходник,485 Кб):

https://rapidshare.com/files/2279153882/GuIniDemo.zip
или
http://www.sendspace.com/file/kstjf9


Dennis I. Komarov   (2011-05-19 16:19:00) [7]


> Anatoly Podgoretsky ©   (19.05.11 16:16) [22]


Не, не забыл... Чего-то сегодня не хотца...


Anatoly Podgoretsky   (2011-05-19 16:16:00) [8]

> Dennis I. Komarov  (19.05.2011 14:57:21)  [21]

А про хлеб с маслом и икоркой забыл?


Dennis I. Komarov   (2011-05-19 14:57:00) [9]


> Это только обработка ini-файла $100

это только за перевод [12] в паскаль...
10% за работу, остальное за вредность...

> чет за курсовые я мало беру, если это столько стоит

ну ты еще ВАЗ с Мерседесом сравни и удивись...


Алеша   (2011-05-19 14:43:00) [10]

Это только обработка ini-файла $100, чет за курсовые я мало беру, если это столько стоит)


Dennis I. Komarov   (2011-05-19 14:31:00) [11]


> Чего так дешево?

Ну так это за пример только, да и то не осилит...


Anatoly Podgoretsky   (2011-05-19 14:10:00) [12]

> Dennis I. Komarov  (19.05.2011 14:04:17)  [17]

Чего так дешево?


Dennis I. Komarov   (2011-05-19 14:04:00) [13]

$100


Алеша   (2011-05-19 13:13:00) [14]

Сколько?


Dennis I. Komarov   (2011-05-19 12:39:00) [15]

Можно, но дорого...


Алеша   (2011-05-19 12:33:00) [16]

Спасибо,  на примере можете отразить?


Jeer   (2011-05-19 10:23:00) [17]


> Dennis I. Komarov ©   (19.05.11 09:03) [12]


Еще надо добавить к Вашему посту, какие кнопки и клавиши ему нажимать :)


Dennis I. Komarov   (2011-05-19 09:03:00) [18]

Открыть файл
Прочитать строку
Присвоить заголовку лэйбла
Закрыть файл


Алеша   (2011-05-19 08:42:00) [19]

Еще вопрос, как вывести первую сроку из ini или txt файла в caption лайбла?(это все связанное с типизацией файлов) Спасибо.


Алеша   (2011-05-19 08:29:00) [20]


> Например одна программа будет формировать такой файл, а
> вторая брать из него данные и производить опрос.

Здравствуй, я не понял две программы это два модуля?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо