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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.12.2015, 00:56   #1
DmitRCH
Пользователь
 
Регистрация: 18.12.2015
Сообщений: 21
По умолчанию EAccessviolation Error , Помогите

Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    GroupBox1: TGroupBox;
    Edit1: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label6: TLabel;
    Edit6: TEdit;
    GroupBox2: TGroupBox;
    Edit13: TEdit;
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    N5: TMenuItem;
    N6: TMenuItem;
    N7: TMenuItem;
    N8: TMenuItem;
    N9: TMenuItem;
    StringGrid1: TStringGrid;
    GroupBox3: TGroupBox;
    CheckBox1: TCheckBox;
    OpenDialog1: TOpenDialog;
    SaveDialog1: TSaveDialog;
    PrintDialog1: TPrintDialog;
    Edit8: TEdit;
    Edit9: TEdit;
    Edit10: TEdit;
    Edit11: TEdit;
    BitBtn1: TBitBtn;
    GroupBox4: TGroupBox;
    GroupBox5: TGroupBox;
    Edit12: TEdit;
    BitBtn2: TBitBtn;
    GroupBox6: TGroupBox;
    GroupBox7: TGroupBox;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Label4: TLabel;
    Edit5: TEdit;
    Edit7: TEdit;
    Label5: TLabel;
    Label7: TLabel;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    procedure StringGrid1Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);

    procedure N7Click(Sender: TObject);
    procedure N9Click(Sender: TObject);
    procedure N4Click(Sender: TObject);
    procedure N5Click(Sender: TObject);

    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
   procedure Button3Click(Sender: TObject);


  private
    { Private declarations }
  public
    { Public declarations }
  end;
type
 TStudent=record
Fam,im,ot,post,rojd,spec,grup: string;
sred : real ;
end;



var
 Form1: TForm1;
 x: byte;
 E: array [1..8] of TStudent;
implementation

{$R *.dfm}

procedure TForm1.StringGrid1Click(Sender: TObject);
begin

StringGrid1.Cells[0,0]:='№';
StringGrid1.Cells[1,0]:='Фамилия';
StringGrid1.Cells[2,0]:='Имя';
StringGrid1.Cells[3,0]:='Отчество';
StringGrid1.Cells[4,0]:='Дата Рождения';
StringGrid1.Cells[5,0]:='Группа';
StringGrid1.Cells[6,0]:='Дата поступления';
StringGrid1.Cells[7,0]:='Специальность';
StringGrid1.Cells[8,0]:='Средний Балл';

end;

procedure TForm1.BitBtn1Click(Sender: TObject);
var sred: real;
begin
sred:=(StrToFloat(Edit13.Text)+StrToFloat(Edit8.Text)+StrToFloat(Edit9.Text)+StrToFloat(Edit10.Text)+StrToFloat(Edit11.Text))/5;
Edit12.Text:=floattostr(sred);
end;

procedure TForm1.N7Click(Sender: TObject);
begin
MessageDlg('Проект выполнил: студент группы Ac c/c 12-o Городков Дмитрий',
mtInformation, [mbOk], 0);
end;

procedure TForm1.N9Click(Sender: TObject);
begin
Close;
end;

procedure TForm1.N4Click(Sender: TObject);
var List: TStringList;
i,j: Integer;
begin
List:=TStringList.Create;
for i:=0 to StringGrid1.RowCount-1 do
for j:=0 to StringGrid1.ColCount-1 do
List.Add(StringGrid1.Cells[j,i]);
if SaveDialog1.Execute then List.SaveToFile(SaveDialog1.FileName);
end;

procedure TForm1.N5Click(Sender: TObject);

var List: TStringList;
i,j: Integer;
begin
List:=TStringList.Create;
if OpenDialog1.Execute then List.LoadFromFile(OpenDialog1.FileName);
for i:=0 to StringGrid1.RowCount-1 do
for j:=0 to StringGrid1.ColCount-1 do
StringGrid1.Cells[j,i]:=List[i*StringGrid1.ColCount+j];
end;



procedure TForm1.Button1Click(Sender: TObject);
begin
E[x].Fam:=Edit1.Text;
E[x].im:=Edit5.Text;
E[x].ot:=Edit7.Text;
E[x].rojd:=Edit6.Text;
E[x].post:=Edit2.Text;
E[x].spec:=Edit3.Text;
E[x].grup:=Edit4.Text;
E[x].sred:=StrtoInt(Edit7.Text);
inc(x);
end;

procedure TForm1.Button2Click(Sender: TObject);
var i,j: byte;
begin
for i:=0 to StringGrid1.ColCount-1 do
for j:=StringGrid1.FixedRows to StringGrid1.RowCount-1 do
StringGrid1.Cells[i, j]:='';
 Edit1.Clear;
 Edit2.Clear;
 Edit3.Clear;
 Edit4.Clear;
 Edit5.Clear;
 Edit6.Clear;
 Edit7.Clear;
 Edit8.Clear;
 Edit9.Clear;
 Edit10.Clear;
Edit11.Clear;
Edit12.Clear;
Edit13.Clear;

end;

procedure TForm1.Button3Click(Sender: TObject);
var i, j: byte;
begin
 StringGrid1.Visible:=true;
for i:=StringGrid1.FixedCols to StringGrid1.ColCount-1 do
for j:=StringGrid1.FixedRows to StringGrid1.RowCount-1 do
StringGrid1.Cells[i,j]:='';
for j:= StringGrid1.FixedRows to x-1 do
begin
StringGrid1.Cells[0,j]:=FloatToStr(j);
StringGrid1.Cells[1,j]:=E[j].Fam;
StringGrid1.Cells[2,j]:=E[j].im;
StringGrid1.Cells[3,j]:=E[j].ot;
StringGrid1.Cells[4,j]:=E[j].rojd;
StringGrid1.Cells[5,j]:=E[j].post;
StringGrid1.Cells[6,j]:=E[j].grup;
StringGrid1.Cells[7,j]:=E[j].spec;
StringGrid1.Cells[8,j]:=FloattoStr(E[j].sred);

end;
end;

end.
Хочу узнать на какой стадии у меня вылазит эта ошибка , и подскажите как поправить . Препода ничего не говорят . Сказали просто чтоб работала

Последний раз редактировалось Аватар; 18.12.2015 в 01:14.
DmitRCH вне форума Ответить с цитированием
Старый 18.12.2015, 00:56   #2
DmitRCH
Пользователь
 
Регистрация: 18.12.2015
Сообщений: 21
По умолчанию

вот исходник
Код:
program Project1;

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1},
  Unit2 in '..\Новая папка (3)\Unit2.pas' {Form2};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TForm2, Form2);
  Application.Run;
end.
Учусь на ядерщика , а задают вот такую вот ПОЕ****
Безымянный.jpg

Пробовал и увеличить обьём array[1..15] бестолку , скорее всего ошибка в коде , но сам делфи не ругается на строки и несовпадения

Последний раз редактировалось Stilet; 18.12.2015 в 12:33.
DmitRCH вне форума Ответить с цитированием
Старый 18.12.2015, 01:04   #3
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

Ну ладно программирование, а читать тоже ядерщикам не надо?
Там же русским по белому написано как оформить код, читать больно.
come-on вне форума Ответить с цитированием
Старый 18.12.2015, 01:16   #4
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Хочу узнать на какой стадии у меня вылазит эта ошибка
прогони под дебаггером по шагам - узнаешь.

а ваще, не надо ядерщикам заниматься программированием. А то когда-нибудь вылезет Access violation на сервере какой-нить АЭС и кааааааааааааааааааак бахнет! и пипец, чурнобыльская фукусима!

так преподу и передай.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 18.12.2015, 01:19   #5
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

Кто код писал?
come-on вне форума Ответить с цитированием
Старый 18.12.2015, 01:39   #6
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Не нашел, где у вас что-то присваивается глобальной переменной x, которая в качестве индекса массива. Она только наращивается Inc(x).

Чему она равна в начале, при запуске программы ?

Попробуйте вот это добавить:
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
 x:=1;
end;

Последний раз редактировалось type_Oleg; 18.12.2015 в 02:04.
type_Oleg вне форума Ответить с цитированием
Старый 18.12.2015, 09:31   #7
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
Хочу узнать на какой стадии у меня вылазит эта ошибка
Цитата:
Пробовал и увеличить обьём array[1..15] бестолку
http://programmersforum.ru/showpost....34&postcount=4
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 18.12.2015 в 09:33.
evg_m вне форума Ответить с цитированием
Старый 18.12.2015, 12:36   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Чему она равна в начале, при запуске программы ?
Она глобальная, должна быть в нуле. Но ты прав - это не кошерно.
Цитата:
Хочу узнать на какой стадии у меня вылазит эта ошибка
Если действительно хочешь узнать, то хотя бы скажи что ты делаешь что эта ошибка вылзает. На какую кнопку жмешь на форме после запуска.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.12.2015, 13:12   #9
DmitRCH
Пользователь
 
Регистрация: 18.12.2015
Сообщений: 21
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Она глобальная, должна быть в нуле. Но ты прав - это не кошерно.

Если действительно хочешь узнать, то хотя бы скажи что ты делаешь что эта ошибка вылзает. На какую кнопку жмешь на форме после запуска.
Нажимаю на Button3 и вылетает ошибка
DmitRCH вне форума Ответить с цитированием
Старый 20.12.2015, 13:17   #10
DmitRCH
Пользователь
 
Регистрация: 18.12.2015
Сообщений: 21
По умолчанию

procedure TForm1.Button3Click(Sender: TObject);
var i, j: byte;
begin
StringGrid1.Visible:=true;
for i:=StringGrid1.FixedCols to StringGrid1.ColCount-1 do
for j:=StringGrid1.FixedRows to StringGrid1.RowCount-1 do
StringGrid1.Cells[i,j]:='';
for j:= StringGrid1.FixedRows to x-1 do
begin
StringGrid1.Cells[0,j]:=FloatToStr(j);
StringGrid1.Cells[1,j]:=E[j].Fam;
StringGrid1.Cells[2,j]:=E[j].im;
StringGrid1.Cells[3,j]:=E[j].ot;
StringGrid1.Cells[4,j]:=E[j].rojd;
StringGrid1.Cells[5,j]:=E[j].post;
StringGrid1.Cells[6,j]:=E[j].grup;
StringGrid1.Cells[7,j]:=E[j].spec;
StringGrid1.Cells[8,j]:=FloattoStr(E[j].sred);

end;

при обращении к вот этой процедуре вылетает ошибка
DmitRCH вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка EAccessViolation. Muaxaxa Помощь студентам 6 21.11.2011 01:01
EAccessViolation Пин Общие вопросы Delphi 2 29.03.2011 10:34
Что за EAccessViolation? Anekdot Общие вопросы Delphi 12 03.08.2009 14:38
Еще раз о EAccessViolation. Andre1723 Общие вопросы Delphi 12 23.02.2009 01:39
Ошибка EAccessViolation num8er Общие вопросы Delphi 6 10.10.2007 08:00