unit HSS_Form;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, TFlatButtonUnit, ComCtrls, ExtCtrls,DB,ADODB;type
  THSS_F = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    HSXX_LV: TListView;
    QD_FBtn: TFlatButton;
    QX_FBtn: TFlatButton;
    procedure HSXX_LVDblClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
   
    procedure FormDestroy(Sender: TObject);
    procedure QX_FBtnClick(Sender: TObject);
    procedure QD_FBtnClick(Sender: TObject);
    
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  HSS_F: THSS_F;implementation
uses
  IniFiles, TSJH_Form, Share_Unit;{$R *.dfm}
//***********************************************************************************
procedure THSS_F.FormDestroy(Sender: TObject);
begin
  HSS_F:=nil;
end;
//***********************************************************************************procedure THSS_F.FormCreate(Sender: TObject);
var
  HSXX_Q:TADOQuery;
  Book:TListItem;
begin
  HSXX_Q:=TADOQuery.Create(nil);
  HSXX_Q.Connection:=Connect;
  HSXX_Q.SQL.Add('Select A.图书编号,还书日期,书名,数量 From 借阅信息 A,图书信息 B ');
  HSXX_Q.SQL.Add('Where A.用户帐号=:用户帐号 and A.图书编号=B.图书编号');
  HSXX_Q.Parameters.ParamByName('用户帐号').Value:=BH;//TTSJH_F(Share_JSHS).TSBH_FE.Text; ////JSHS_F.TSBH_FE.Text;后面的不能用
  HSXX_Q.Open;
  if not(HSXX_Q.Bof and HSXX_Q.Eof) then
    while not HSXX_Q.Eof do
      begin
        if HSXX_Q.FieldByName('还书日期').IsNull then      //显示没有还的书的信息
          begin
            Book:=HSXX_LV.Items.Add;
            Book.Caption:=HSXX_Q.FieldValues['图书编号'];
            Book.SubItems.Add(HSXX_Q.FieldValues['书名']);
            Book.SubItems.Add(HSXX_Q.FieldValues['数量']);
          end;
        HSXX_Q.Next;
      end;
  FreeAndNil(HSXX_Q);
end;
//***********************************************************************************
procedure THSS_F.HSXX_LVDblClick(Sender: TObject);
var
  HSXX_Q:TADOQuery;
  SH:String;
  TS:Integer;
  MyIniFile:TiniFile;
  FJ,FJDay:Double;
begin
  SH:=HSXX_LV.Selected.Caption;
  TTSJH_F(Share_JSHS).HSSL_FE.Text:=HSXX_LV.Selected.SubItems[1];  HSXX_Q:=TADOQuery.Create(nil);         //查询此图书的基本信息
  HSXX_Q.Connection:=Connect;
  HSXX_Q.SQL.Add('Select * From 图书信息 A Where A.图书编号=:图书编号');
  HSXX_Q.Parameters.ParamByName('图书编号').Value:=SH;
  HSXX_Q.Open;  TTSJH_F(Share_JSHS).HSBH_FE.Text:=SH;
  TTSJH_F(Share_JSHS).HSSM_FE.Text:=HSXX_Q.FieldValues['书名'];
  TTSJH_F(Share_JSHS).HSZZ_FE.Text:=HSXX_Q.FieldValues['作者'];
  TTSJH_F(Share_JSHS).HSCBS_FE.Text:=HSXX_Q.FieldValues['出版社'];
  TTSJH_F(Share_JSHS).HSDJ_FE.Text:=HSXX_Q.FieldValues['定价'];  HSXX_Q.Close;            //读取借书者的姓名和到期的时间
  HSXX_Q.SQL.Clear;
  HSXX_Q.SQL.Add('Select A.书名,B.到期日期 From 用户 A,借阅信息 B Where A.用户帐号=:用户帐号 and 还书日期 is Null');
  HSXX_Q.SQL.Add(' and A.用户帐号=B.用户帐号');
  HSXX_Q.Parameters.ParamByName('用户帐号').Value:=BH;//TTSJH_F(Share_JSHS).TSBH_FE.Text; //用户ID号
  HSXX_Q.Open;
  TTSJH_F(Share_JSHS).HSXM_FE.Text:=HSXX_Q.FieldValues['姓名'];
  TS:=Date-HSXX_Q.FieldValues['到期日期'];
  if TS<0 then TS:=0;              //天数为负,表示按时归还
  TTSJH_F(Share_JSHS).HSCGTS_FE.Text:=IntToStr(TS);  if TS>0 then                     //计算罚金
    begin
      MyIniFile:=TiniFile.Create(Application.ExeName+'set.ini');
      FJDay:=MyIniFile.ReadFloat('set','FJDay',0.5);
      FreeAndNil(MyIniFile);
    end;
  FJ:=FJDay*TS*(StrToInt(HSXX_LV.Selected.SubItems[1]));
  TTSJH_F(Share_JSHS).HSFJ_FE.Text:=FloatToStr(FJ);
  FreeAndNil(HSXX_Q);
  close;
end;
//***********************************************************************************
procedure THSS_F.QX_FBtnClick(Sender: TObject);
begin
   close;
end;procedure THSS_F.QD_FBtnClick(Sender: TObject);
begin
   HSXX_LVDblClick(HSXX_LV);
end;end.
工程1.exe检测到错误类EAccessViolation,错误信息:'Access violation at address 00403DD8 in module '1.exe'.Read of address 0000001C'.进程终止.使用单步或运行继续运行.