Форум программистов, компьютерный форум, киберфорум
Lazarus
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
2 / 2 / 2
Регистрация: 14.12.2013
Сообщений: 39

Необходимо создать "Тест" (найти ошибку, поправить прогу)

02.10.2014, 02:22. Показов 3569. Ответов 32
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Надеюсь на Вашу помощь.
Задание:
1. Перед пользователем окно, в котором он должен ввести свои ФИО.
2. Во втором окне пользователю предлагается выбрать тест, который он хочет пройти через OpenDialog.
3. Название,которое выбирается в OpenDialog сохраняется в переменную.
4. Открывается этот файл с именем этой переменной. В 3-ей форме создается некоторое количество лейблов и столько же едитов. В каждый лейбл записывается вопрос -1 строка из файла. В соседний едит пользователь должен ввести ответ на него.
5. Результатом проги является то, что все ответы пользователя сохраняются в отдельный файл, а еще этому файлу нужно обеспечить защиту от ручной корректировки результатов.
Надеюсь, что объяснила понятно. То, что у меня получилось (3 юнита) здесь. Буду очень благодарна, если найдете ошибку

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
unit Unit1;
 
{$mode objfpc}{$H+}
 
interface
 
uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;
 
type
 
  { TForm1 }
 
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Edit1: TEdit;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
uses Unit2;
 
{ TForm1 }
 
procedure TForm1.Button2Click(Sender: TObject);
begin
  close;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
  Form2.Label2.Caption:=Form1.Edit1.Text;
  Form2.ShowModal;
end;
 
{$R *.lfm}
 
end.
.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
unit Unit2;
 
{$mode objfpc}{$H+}
 
interface
 
uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;
 
type
 
  { TForm2 }
 
  TForm2 = class(TForm)
    Button1: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    OpenDialog1: TOpenDialog;
    procedure Button1Click(Sender: TObject);
  private
    { private declarations }
  public
    Nametext:string;
    { public declarations }
  end;
 
var
  Form2: TForm2;
 
implementation
 uses Unit3;
 
 { TForm2 }
 
 procedure TForm2.Button1Click(Sender: TObject);
 begin
    OpenDialog1.Execute;
  if(OpenDialog1.FileName <> '') then begin
    Nametext:= FileUtil.UTF8ToSys(OpenDialog1.FileName);
    Form3.ShowModal;
end;
 end;
 
{$R *.lfm}
 
end.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
unit Unit3;
 
{$mode objfpc}{$H+}
 
interface
 
uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;
 
type
 
  { TForm3 }
 
  TForm3 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure fclose(Sender: TObject);
    procedure orm(Sender: TObject);
    procedure write(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;
 
var
  Form3: TForm3;
  f,f2:TextFile;count:integer;
implementation
 uses Unit2,Unit1;
 
 { TForm3 }
 
 procedure TForm3.orm(Sender: TObject);
 var edt: TEdit;lbl: TLabel;toop1:integer;S:string;
begin
  AssignFile(f,Form2.Nametext);
    Reset(f);
    toop1:=10;count:=1;
    while Not EOF(f) do
    begin
      Readln(f, S);
         edt:=TEdit.Create(Form3);
         edt.Parent:=Form3;
         edt.Top:=toop1;
         edt.Left:=100;
         lbl:=TLabel.Create(Form3);
         lbl.Parent:=Form3;
         lbl.Caption := S;
         lbl.Top:=toop1;
         inc(count);
      inc(toop1,20);
      CloseFile(f);
end;end;
 
procedure TForm3.fclose(Sender: TObject);
begin
  close;Form1.Close;
Form2.Close;
end;
 
procedure TForm3.write(Sender: TObject);
var i:integer;
begin
  AssignFile(f2,'Answers');
  Rewrite(f2);
  Append(f2);
  for i:=1 to count do
  begin
  Writeln(f2,TEdit(FindComponent('Edit'+IntToStr(i))).Text);
end;
closefile(f2);
end;
 
{$R *.lfm}
 
end.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.10.2014, 02:22
Ответы с готовыми решениями:

Поправить прогу!(Функция)
Пусть все x&gt;0 (i=1,2,...,n).Отсортируйте по неубыванию средние величины-геометрические,гармонические и квадратичные!Вот фото задания ...

Поправить прогу!(Функция)
Пусть все x&gt;0 (i=1,2,...,n).Отсортируйте по неубыванию средние величины-геометрические,гармонические и квадратичные!Вот фото задания ...

поправить прогу,метод Эйлера
Помогите поправить код,в долгу не останусь) нужно методом Эйлера получить значения в пределах с шагом h=0,1 . y(0)=1 ур-е ...

32
602 / 550 / 210
Регистрация: 24.01.2012
Сообщений: 1,352
02.10.2014, 15:41
Студворк — интернет-сервис помощи студентам
Может Антивирус мешает? У меня программа вылетала при сохранении результатов т.к. при создании едитов им не назначались имена, а при сохранении шло обращение к едитам по именам Нужно в процедуру создания едитов добавить строки
Pascal
1
2
      Name:='Edit'+IntToStr(AmountOfStrings+1);
      Text:='';
в сохранении тоже есть недочет, сначала файл перезаписывается, а потом открывается для добавления записей, в результате все предыдущие записи стираются. Можно сделать так.
Pascal
1
2
3
4
5
   AssignFile(f2,'Answers');
   {$I-}
  Append(F2);
   {$I+}
  If IoResult<>0 Then ReWrite(f2);
0
2 / 2 / 2
Регистрация: 14.12.2013
Сообщений: 39
02.10.2014, 16:04  [ТС]
Когда я нажимаю на кнопку выбора теста и открывается окно выбора файла, возникает ошибка RunError 217 (см.скрин). Антивирусы выключены. Т.е. до сохранения результатов я не дохожу.
Миниатюры
Необходимо создать "Тест" (найти ошибку, поправить прогу)  
Вложения
Тип файла: zip прогаархив.zip (4.02 Мб, 12 просмотров)
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33466 / 21565 / 8249
Регистрация: 22.10.2011
Сообщений: 37,017
Записей в блоге: 12
02.10.2014, 16:05
Цитата Сообщение от edukra Посмотреть сообщение
при создании едитов им не назначались имена, а при сохранении шло обращение к едитам по именам
В моем проекте имена добавлены...
1
602 / 550 / 210
Регистрация: 24.01.2012
Сообщений: 1,352
02.10.2014, 16:35
exe файл-64х битный, значит система win7 или win8. А у меня XP. Так, что попытаться воспроизвести проблему мне негде. А в XP программа работает.
0
Модератор
 Аватар для FIL
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,977
02.10.2014, 17:19
На Win7 x64 ЕХЕшник работает.
0
2 / 2 / 2
Регистрация: 14.12.2013
Сообщений: 39
02.10.2014, 18:23  [ТС]
эх, да что ж со мной не так...
0
2 / 2 / 2
Регистрация: 14.12.2013
Сообщений: 39
02.10.2014, 18:27  [ТС]
Может, можно это как-то определить по адресу?
Миниатюры
Необходимо создать "Тест" (найти ошибку, поправить прогу)  
0
Модератор
 Аватар для FIL
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,977
02.10.2014, 18:35
Попробуй перенеси проект с диска "С" (Рабочего стола) на другой и запусти оттуда.
0
2 / 2 / 2
Регистрация: 14.12.2013
Сообщений: 39
02.10.2014, 19:02  [ТС]
Не помогает.
0
446 / 374 / 133
Регистрация: 09.09.2011
Сообщений: 1,347
02.10.2014, 21:58
Попробуйте перекомпилировать проект с полной очисткой (удалением всех объектных файлов).

Надо зайти в меню "Запуск" -> "Очистить файлы сборки...". В появившимся окне снять "галки" с последних 2-х пунктов, как на приложенном скриншоте и нажать кнопку "Очистить и собрать"
Миниатюры
Необходимо создать "Тест" (найти ошибку, поправить прогу)  
0
2 / 2 / 2
Регистрация: 14.12.2013
Сообщений: 39
02.10.2014, 23:15  [ТС]
Не помогло.
0
446 / 374 / 133
Регистрация: 09.09.2011
Сообщений: 1,347
02.10.2014, 23:30
не знаю тогда что и подсказать - у меня вполне работает (после незначительных правок кода).

может какие-нибудь символы сбойные в пути (по умолчанию?)...

возникает эта ошибка, если запустить само приложение (не из среды Lazarus)?
если запустить приложение от другого пользователя (например Администратора)? для этого правый клик на exe файл и выбрать "Запуск от имени Администратора"
1
2 / 2 / 2
Регистрация: 14.12.2013
Сообщений: 39
05.10.2014, 15:20  [ТС]
Ураа! Это просто мистика, но с ноутбука все работает!Единственно, что делать, если в answers.txt один ответ записывается по нескольку раз? И как уберечь файл с ответами от ручной корректировки?

Добавлено через 58 минут
Хотя нет , только про то, как защитить файл с ответами.

Добавлено через 2 часа 20 минут
А,все, у меня получилось. Огромное всем спасибо!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.10.2014, 15:20

Помогите поправить код почти закончил прогу
Вот весь код unit Unit1; interface uses shellapi, Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,...

Аппроксимация функции методом наименьших квадратов (поправить прогу)
Добрый день! Нужно аппроксимировать функцию f=sqrt(x+1)+1 на отрезке без встроенных функций Matlab. При некоторых степенях...

В заданном тексте (тест с числами) необходимо найти самое большое число
в заданном тексте(тест с числами). необходимо найти самое большое число.

Тест Delphi. Необходимо найти ошибки в коде и добавить компоненты из задания
Напишите программу MP3 Player. Программа должна обеспечивать возможность выбора каталога, в котором находятся MP3-файлы, а также ...

Найти ошибку в коде. Не проходит тест
Всем доброго времени суток. Я новичок в сишарпе. Нам дали задания по теме функции. у меня не проходит один тест. Пожалуйста, кто может...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
33
Ответ Создать тему
Новые блоги и статьи
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Video: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru