程序运行时出现这个对话框  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.

解决方案 »

  1.   

    先排版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.
      

  2.   

    strtodate  、floattostr  检查下吧
      

  3.   

    自己调试呀
    先看看stringgrid1.ColCount循环是否超出了f的界限