程序运行时出现这个对话框 Access voilation at address.00404310 in module'XSCLProject2.exe'.write of address 00465F90.代码如下:
unit XueShengGuanLi;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, StdCtrls, Buttons, ComCtrls, ExtCtrls;type
TForm1 = class(TForm)
pnl1: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
edtno: TEdit;
edtname: TEdit;
edtage: TEdit;
cbb1: TComboBox;
dtp1: TDateTimePicker;
pnl2: TPanel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
edtcname: TEdit;
edtdegree: TEdit;
edttotal: TEdit;
edtavg: TEdit;
pnl3: TPanel;
btn1: TBitBtn;
btn3: TBitBtn;
btn4: TBitBtn;
btn5: TBitBtn;
btn6: TBitBtn;
btn7: TBitBtn;
StringGrid1: TStringGrid;
edtsdept: TEdit;
btn8: TBitBtn;
btn9: TBitBtn;
procedure EditInit;
procedure Init;
procedure CT;
procedure BitBtn;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}
const f:array[0..9] of string=('学号','姓名',' 课程名','成绩','总分','平均成绩',
'性别','年龄','出生日期','系别');
var
sum,avg:real;
n:integer;
procedure TForm1.EditInit;
begin
edtno.Text :='';
edtname.Text :='';
edtage.Text :='';
cbb1.Text :='';
dtp1.Date :=strtodate('86-1-1');
edtsdept.Text :='';
end;
procedure TForm1.Init;
begin
edtcname.Text :='';
edtdegree.Text :='';
edtcname.Enabled :=true;
edtdegree.Enabled :=true;
edttotal.Text :=floattostr(sum);
edtavg.Text :=floattostr(avg);
edtcname.setFocus;
btn9.Enabled :=false;
btn8.Enabled :=true;
end;
procedure TForm1.CT;
BEGIN
edtcname.Enabled :=false;
edtdegree.Enabled :=false;
edttotal.Enabled :=false;
edtavg.Enabled :=false;end;
procedure TForm1.BitBtn;
begin
btn9.Enabled :=true;
btn8.Enabled :=false;
btn1.Enabled :=true; btn3.Enabled :=true;
btn4.Enabled :=true;
btn5.Enabled :=true;
btn6.Enabled :=true;
btn7.Enabled :=true;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
i,j:integer;
begin for j:=0 to stringgrid1.ColCount -1 do
stringgrid1.Cells[j,0] :=f[j];
dtp1.Date :=strtodate('90-1-1');
edtno.MaxLength :=20;
edtname.MaxLength:=10;
edtage.MaxLength :=3;
pnl1.Enabled:=false;
EditInit;
Init;
CT;
BitBtn;
end;end.
unit XueShengGuanLi;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, StdCtrls, Buttons, ComCtrls, ExtCtrls;type
TForm1 = class(TForm)
pnl1: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
edtno: TEdit;
edtname: TEdit;
edtage: TEdit;
cbb1: TComboBox;
dtp1: TDateTimePicker;
pnl2: TPanel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
edtcname: TEdit;
edtdegree: TEdit;
edttotal: TEdit;
edtavg: TEdit;
pnl3: TPanel;
btn1: TBitBtn;
btn3: TBitBtn;
btn4: TBitBtn;
btn5: TBitBtn;
btn6: TBitBtn;
btn7: TBitBtn;
StringGrid1: TStringGrid;
edtsdept: TEdit;
btn8: TBitBtn;
btn9: TBitBtn;
procedure EditInit;
procedure Init;
procedure CT;
procedure BitBtn;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}
const f:array[0..9] of string=('学号','姓名',' 课程名','成绩','总分','平均成绩',
'性别','年龄','出生日期','系别');
var
sum,avg:real;
n:integer;
procedure TForm1.EditInit;
begin
edtno.Text :='';
edtname.Text :='';
edtage.Text :='';
cbb1.Text :='';
dtp1.Date :=strtodate('86-1-1');
edtsdept.Text :='';
end;
procedure TForm1.Init;
begin
edtcname.Text :='';
edtdegree.Text :='';
edtcname.Enabled :=true;
edtdegree.Enabled :=true;
edttotal.Text :=floattostr(sum);
edtavg.Text :=floattostr(avg);
edtcname.setFocus;
btn9.Enabled :=false;
btn8.Enabled :=true;
end;
procedure TForm1.CT;
BEGIN
edtcname.Enabled :=false;
edtdegree.Enabled :=false;
edttotal.Enabled :=false;
edtavg.Enabled :=false;end;
procedure TForm1.BitBtn;
begin
btn9.Enabled :=true;
btn8.Enabled :=false;
btn1.Enabled :=true; btn3.Enabled :=true;
btn4.Enabled :=true;
btn5.Enabled :=true;
btn6.Enabled :=true;
btn7.Enabled :=true;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
i,j:integer;
begin for j:=0 to stringgrid1.ColCount -1 do
stringgrid1.Cells[j,0] :=f[j];
dtp1.Date :=strtodate('90-1-1');
edtno.MaxLength :=20;
edtname.MaxLength:=10;
edtage.MaxLength :=3;
pnl1.Enabled:=false;
EditInit;
Init;
CT;
BitBtn;
end;end.
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, StdCtrls, Buttons, ComCtrls, ExtCtrls;type
TForm1 = class(TForm)
pnl1: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
edtno: TEdit;
edtname: TEdit;
edtage: TEdit;
cbb1: TComboBox;
dtp1: TDateTimePicker;
pnl2: TPanel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
edtcname: TEdit;
edtdegree: TEdit;
edttotal: TEdit;
edtavg: TEdit;
pnl3: TPanel;
btn1: TBitBtn;
btn3: TBitBtn;
btn4: TBitBtn;
btn5: TBitBtn;
btn6: TBitBtn;
btn7: TBitBtn;
StringGrid1: TStringGrid;
edtsdept: TEdit;
btn8: TBitBtn;
btn9: TBitBtn;
procedure EditInit;
procedure Init;
procedure CT;
procedure BitBtn;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}
const f:array[0..9] of string=('学号','姓名',' 课程名','成绩','总分','平均成绩',
'性别','年龄','出生日期','系别');
var
sum,avg:real;
n:integer;
procedure TForm1.EditInit;
begin
edtno.Text :='';
edtname.Text :='';
edtage.Text :='';
cbb1.Text :='';
dtp1.Date :=strtodate('86-1-1');
edtsdept.Text :='';
end;
procedure TForm1.Init;
begin
edtcname.Text :='';
edtdegree.Text :='';
edtcname.Enabled :=true;
edtdegree.Enabled :=true;
edttotal.Text :=floattostr(sum);
edtavg.Text :=floattostr(avg);
edtcname.setFocus;
btn9.Enabled :=false;
btn8.Enabled :=true;
end;
procedure TForm1.CT;
BEGIN
edtcname.Enabled :=false;
edtdegree.Enabled :=false;
edttotal.Enabled :=false;
edtavg.Enabled :=false;end;
procedure TForm1.BitBtn;
begin
btn9.Enabled :=true;
btn8.Enabled :=false;
btn1.Enabled :=true; btn3.Enabled :=true;
btn4.Enabled :=true;
btn5.Enabled :=true;
btn6.Enabled :=true;
btn7.Enabled :=true;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
i,j:integer;
begin for j:=0 to stringgrid1.ColCount -1 do
stringgrid1.Cells[j,0] :=f[j];
dtp1.Date :=strtodate('90-1-1');
edtno.MaxLength :=20;
edtname.MaxLength:=10;
edtage.MaxLength :=3;
pnl1.Enabled:=false;
EditInit;
Init;
CT;
BitBtn;
end;end.
先看看stringgrid1.ColCount循环是否超出了f的界限