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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.11.2011, 14:59   #1
Katus
Форумчанин
 
Регистрация: 30.11.2011
Сообщений: 161
По умолчанию ERROR: "Access violation at address 0040412C in module 'Project1.exe'. Read of address FFFFFFFE."

Помогите, пожалуйста. Я новичек в программировании.
Вот код программы.

Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Queshion: TLabel;
    IfYes: TLabel;
    IfNo: TLabel;
    InProcents: TLabel;
    Variant1: TCheckBox;
    Variant2: TCheckBox;
    Variant3: TCheckBox;
    Variant4: TCheckBox;
    ImEnd: TBitBtn;
    Reger: TButton;
    NameN: TEdit;
    NameSN: TEdit;
    NameTN: TEdit;
    Gp: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    procedure ImEndClick(Sender: TObject);
    procedure RegerClick(Sender: TObject);
    procedure NameNKeyPress(Sender: TObject; var Key: Char);
    procedure GpKeyPress(Sender: TObject; var Key: Char);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
  TTester = record
    FirstName: String;
    SecondName: String;
    ThirdName: String;
    Group: integer;
    end;

var
  Form1: TForm1;
  n: byte; // Макс кол-во вопросов
  i: byte; // Счетчик вопроса
  vrnt: byte; // Вариант
  Tester: TTester;
  FileNameIs: string;
  FileOfData: text;
  SSName, STName, SName: string;
  Quest: array [1..100,1..100,0..4] of string;

implementation

{$R *.dfm}

function ReWriter(SText: string):string;
var
  i: byte;
  S: string;
begin
S:='';
for i:=1 to length(SText) do
  begin
  case SText[i] of
  'А','а': S:=S+'A';
  'Б','б': S:=S+'B';
  'В','в': S:=S+'V';
  'Г','г': S:=S+'G';
  'Д','д': S:=S+'D';
  'Е','е': S:=S+'E';
  'Ё','ё': S:=S+'YO';
  'Ж','ж': S:=S+'ZH';
  'З','з': S:=S+'Z';
  'И','и': S:=S+'I';
  'Й','й': S:=S+'J';
  'К','к': S:=S+'K';
  'Л','л': S:=S+'L';
  'М','м': S:=S+'M';
  'Н','н': S:=S+'N';
  'О','о': S:=S+'O';
  'П','п': S:=S+'P';
  'Р','р': S:=S+'R';
  'С','с': S:=S+'S';
  'Т','т': S:=S+'T';
  'У','у': S:=S+'U';
  'Ф','ф': S:=S+'F';
  'Х','х': S:=S+'H';
  'Ц','ц': S:=S+'C';
  'Ч','ч': S:=S+'CH';
  'Ш','ш': S:=S+'SH';
  'Щ','щ': S:=S+'SCH';
  'Ъ','ъ': S:=S+'j';
  'Ы','ы': S:=S+'Y';
  'Ь','ь': S:=S+'y';
  'Э','э': S:=S+'YE';
  'Ю','ю': S:=S+'YU';
  'Я','я': S:=S+'YA';
//  '': break;
  end;
  end;
ReWriter:=S;
end;

procedure TForm1.ImEndClick(Sender: TObject);
begin
if (Variant1.Checked=False)and(Variant2.Checked=False)and
   (Variant3.Checked=False)and(Variant4.Checked=False)
  then
    ShowMessage('Вы не выбрали ни одного варианта ответа!')
  else
    begin
    n:=n+1;
    Form1.Queshion.Caption:='Вопрос:'+#13+Quest[n, vrnt, 0];
    Form1.Variant1.Caption:='1) '+ Quest[n, vrnt, 1];
    Form1.Variant2.Caption:='2) '+ Quest[n, vrnt, 2];
    Form1.Variant3.Caption:='3) '+ Quest[n, vrnt, 3];
    Form1.Variant4.Caption:='4) '+ Quest[n, vrnt, 4];
    Form1.Variant1.Checked:=False;
    Form1.Variant2.Checked:=False;
    Form1.Variant3.Checked:=False;
    Form1.Variant4.Checked:=False;
    end;
end;

procedure TForm1.RegerClick(Sender: TObject);
begin
if (NameN.Text='')or(NameSN.Text='')or(NameTN.Text='')or(Gp.Text='')
  then
    ShowMessage('Заполните все поля')
  else
    begin
    Label1.Visible:=False;
    Label2.Visible:=False;
    Label3.Visible:=False;
    Label4.Visible:=False;
    Label5.Visible:=False;
    NameN.Visible:=False;
    NameSN.Visible:=False;
    NameTN.Visible:=False;
    Gp.Visible:=False;
    Tester.FirstName:=NameN.Text;
    Tester.SecondName:=NameSN.Text;
    Tester.ThirdName:=NameTN.Text;
    Tester.Group:=StrToInt(Gp.Text);
    ImEnd.Visible:=True;
    Queshion.Visible:=True;
    Reger.Visible:=False;
    Variant1.Visible:=True;
    Variant2.Visible:=True;
    Variant3.Visible:=True;
    Variant4.Visible:=True;
    Form1.Width:=837;
    Form1.Height:=591;
    SSName:=ReWriter(NameSN.Text);
    SName:=ReWriter(NameN.Text);
    STName:=ReWriter(NameTN.Text);
    FileNameIs:='C:\TEST\G'+Gp.Text+'STF'+SSName+'STN'+SName+'STO'+STName+'.txt';
    n:=1;
    Form1.Queshion.Caption:='Вопрос:'+#13+Quest[n, vrnt, 0];
    Form1.Variant1.Caption:='1) '+ Quest[n, vrnt, 1];
    Form1.Variant2.Caption:='2) '+ Quest[n, vrnt, 2];
    Form1.Variant3.Caption:='3) '+ Quest[n, vrnt, 3];
    Form1.Variant4.Caption:='4) '+ Quest[n, vrnt, 4];
    Form1.Variant1.Checked:=False;
    Form1.Variant2.Checked:=False;
    Form1.Variant3.Checked:=False;
    Form1.Variant4.Checked:=False;
    end;
end;

procedure TForm1.NameNKeyPress(Sender: TObject; var Key: Char);
begin
case Key of
'а'..'я','А'..'Я': ;
#8: ;
else Key:=#0;
end;
end;

procedure TForm1.GpKeyPress(Sender: TObject; var Key: Char);
begin
case Key of
'0'..'9': ;
#8: ;
else Key:=#0;
end;
end;

end.
Если лень что-то делать, заставь это делать машину ... =,
Katus вне форума Ответить с цитированием
Старый 30.11.2011, 15:31   #2
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,899
По умолчанию

Вот что увидел, у Вас vrnt нигде неопределен, значит он будет = 0 при старте программы. При обращению к quest[X, vrnt=0, X] - будет нарушение границ массива quest[1..100,1..100, 0..4]
Впредь пользуйтесь отладкой - кнопки f4, f5, f7, f8 и прочитайте в учебнике/мануале про отладку.
phomm вне форума Ответить с цитированием
Старый 30.11.2011, 17:56   #3
Katus
Форумчанин
 
Регистрация: 30.11.2011
Сообщений: 161
По умолчанию

Точно...Спасибо большое, Phomm=)))
Если лень что-то делать, заставь это делать машину ... =,
Katus вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
access violation at address 00457119 in module 'project1.exe'. read of adress 000000E0 Александра_69 Общие вопросы Delphi 9 29.10.2011 17:22
Ошибка: "Access violation at address 0045E503 in module 'Project1.exe'. Read of address 00316777. Katexxxsa Общие вопросы Delphi 1 03.10.2011 23:16
Ошибка "Access violation at address 004043A8 in module 'Project1.exe'. Read of address 00FF5A53." ms.Karishka Общие вопросы Delphi 6 14.04.2011 22:18
Access violation at address 00478D0E in module 'Project1.exe'. Write of address 00000000 fondreykus-1 Общие вопросы Delphi 5 27.01.2010 14:25
Ошибка: "Access violation at address 00454F01 in module 'Project1.exe'. Read of address 00000000. Fen1x Общие вопросы Delphi 8 13.10.2007 20:13