⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tsgl1.pas

📁 本光盘是《Delphi 7应用教程》一书的配套光盘
💻 PAS
字号:
unit tsgl1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, DBCtrls, Mask, DB, DBTables, Grids, DBGrids;

type
  TForm1 = class(TForm)
    DataSource1: TDataSource;
    Table1: TTable;
    Label1: TLabel;
    Label2: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    GroupBox1: TGroupBox;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    GroupBox2: TGroupBox;
    Button6: TButton;
    Button7: TButton;
    Button8: TButton;
    Button9: TButton;
    Button10: TButton;
    Button11: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    CheckBox1: TCheckBox;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button11Click(Sender: TObject);
    procedure Button10Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure Button9Click(Sender: TObject);
    procedure DBGrid1CellClick(Column: TColumn);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  BM:TBookMark;       //该变量用于在添回记录时把当前记录位置作为一个书签
  AddOrNot:Boolean;    //该变量用来表示是添加操作还是修改操作
Procedure  ButtonAddEdit() ;
Procedure  ButtonOkCancel();
Procedure  Cannotedit();
Procedure  Canedit() ;
Procedure DisabledButton();
Procedure DispValue();
Procedure ClearValue();
Procedure SetValue();
implementation

{$R *.dfm}
Procedure DispValue();     //在编辑框中显示当前记录的内容
var
   hx:boolean;
   begin
     Form1.Edit1.Text :=Form1.Table1.fieldbyname('书号').asstring;
     Form1.Edit2.Text :=Form1.Table1.fieldbyname('书名').asstring;
     Form1.Edit3.Text :=Form1.Table1.fieldbyname('作者').asstring;
     Form1.Edit4.Text :=Form1.Table1.fieldbyname('出版社').asstring;
     Form1.Edit5.Text :=Form1.Table1.fieldbyname('单价').asstring;
     Form1.Edit6.Text :=Form1.Table1.fieldbyname('购买册数').asstring;
     hx:=form1.Table1.FieldByName('是否核心').AsBoolean ;
     IF HX THEN
         Form1.CheckBox1.State :=cbChecked
     else
         Form1.CheckBox1.State :=cbunChecked;
   end;
Procedure ClearValue();     //消除在编辑框中显示的内容
   begin
     Form1.Edit1.Text :='';
     Form1.Edit2.Text :='';
     Form1.Edit3.Text :='';
     Form1.Edit4.Text :='';
     Form1.Edit5.Text :='';
     Form1.Edit6.Text :='';
     Form1.CheckBox1.Checked :=False;
   end;
Procedure SetValue() ;
  Var
     hx:boolean;
   begin
      with Form1.Table1 do
        begin
           Fieldbyname('书号').AsString :=Form1.Edit1.Text ;
           Fieldbyname('书名').AsString :=Form1.Edit2.Text ;
           Fieldbyname('作者').AsString :=Form1.Edit3.Text ;
           Fieldbyname('出版社').AsString :=Form1.Edit4.Text ;
           Fieldbyname('单价').AsString :=Form1.Edit5.Text ;
           Fieldbyname('购买册数').AsString :=Form1.Edit6.Text ;
           If Form1.CheckBox1.State =cbChecked then
              hx:=True
           else
              hx:=False;
           FieldByName('是否核心').AsBoolean :=hx;
        end;
   end;
Procedure  ButtonAddEdit(); //用来设置执行添加或修改操作时各按钮的状态
    begin
       Form1.GroupBox1.Enabled :=False;
       Form1.Button6.Enabled :=False;
       Form1.Button7.Enabled :=False;
       Form1.Button8.Enabled :=False;
       Form1.Button9.Enabled :=False;
       Form1.Button10.Enabled :=True;
       Form1.Button11.Enabled :=True;
    end;
  Procedure  ButtonOkCancel();//用来设置执行取消或确定操作时各按钮的状态
    begin
       Form1.GroupBox1.Enabled :=True;
       Form1.Button6.Enabled :=True;
       Form1.Button7.Enabled :=True;
       Form1.Button8.Enabled :=True;
       Form1.Button9.Enabled :=True;
       Form1.Button10.Enabled :=False;
       Form1.Button11.Enabled :=False;
    end;
  Procedure  Cannotedit();//用来设置各输入的数据控件不可输入
     begin
       Form1.Edit1.readOnly:=True;
       Form1.Edit2.readOnly:=True;
       Form1.Edit3.readOnly:=True;
       Form1.Edit4.readOnly:=True;
       Form1.Edit5.readOnly:=True;
       Form1.Edit6.readOnly:=True;
       Form1.CheckBox1.Enabled :=False;
     end;
   Procedure  Canedit();//用来设置各输入的数据控件可以输入
     begin
       Form1.Edit1.readOnly:=False;
       Form1.Edit2.readOnly:=False;
       Form1.Edit3.readOnly:=False;
       Form1.Edit4.readOnly:=False;
       Form1.Edit5.readOnly:=False;
       Form1.Edit6.readOnly:=False;
       Form1.CheckBox1.Enabled :=True;
     end;
   Procedure DisabledButton(); //使所有的按钮不可用
      begin
          Form1.button1.enabled:=False;
          Form1.button2.enabled:=False;
          Form1.button3.enabled:=False;
          Form1.button4.enabled:=False;
          Form1.button5.enabled:=False;
          Form1.button6.enabled:=False;
          Form1.button7.enabled:=False;
          Form1.button8.enabled:=False;
          Form1.button9.enabled:=False;
          Form1.button10.enabled:=False;
          Form1.button11.enabled:=False;
      end;
procedure TForm1.FormCreate(Sender: TObject);
 Var
   Cdir:string;
begin
  getdir(0,Cdir);
  table1.DatabaseName:=Cdir;   //设置Table1的Databasename为当前目录
  table1.Active :=True; //打开Table1
  Cannotedit;   //设置可输入组件为只读
  if table1.RecordCount =0 then  //如果数据库表为空
     begin
         disabledButton;
         Button6.Enabled :=True; //只有添加按钮可用
     end
     else
        ButtonOkCancel;
//  Table1.IndexName :='BOOKNAME';   //设置查询用的索引名
  Dispvalue;
end;

procedure TForm1.Button1Click(Sender: TObject); //移到首记录按钮
begin
  Table1.First ;
  Button1.Enabled :=False;
  Button2.Enabled :=False;
  Button3.Enabled :=True;
  Button4.Enabled:=True;
  Dispvalue();
end;

procedure TForm1.Button2Click(Sender: TObject);//前移
begin
   Table1.Prior ;
   button3.Enabled :=True;
   Button4.Enabled :=True;
   if table1.Bof then
      begin
         table1.First ;
         button1.Enabled :=False;
         Button2.Enabled :=False;
      end;
   dispValue();
end;

procedure TForm1.Button3Click(Sender: TObject);//后移
begin
   table1.Next ;
   Button1.Enabled :=True;
   Button2.Enabled :=True;
   if  table1.Eof then
       begin
         Button3.Enabled :=False;
         Button4.Enabled :=False;
         table1.Last ;
       end;
   Dispvalue;
end;

procedure TForm1.Button4Click(Sender: TObject); //末记录
begin
  Table1.Last ;
  Button1.Enabled :=True;
  Button2.Enabled :=True;
  Button3.Enabled :=False;
  Button4.Enabled:=False;
  dispvalue;
end;

procedure TForm1.Button5Click(Sender: TObject);//退出
begin
  table1.Close ;
  Application.Terminate ;
end;

procedure TForm1.Button6Click(Sender: TObject);//增加
begin
  ClearValue;
  BM:=table1.GetBookmark ; //记下当前记录位置
  Canedit;       //允许输入
  ButtonAddEdit;   //设置按钮状态
  AddOrNot:=True;  //是增加操作
  Table1.Append ;//增加记录
end;

procedure TForm1.Button11Click(Sender: TObject);//取消
begin
  Table1.Cancel;  //执行取消操作
  If AddOrNot then         //如果刚才执行的是增加操作
     table1.GotoBookmark(Bm); //把指针移到原来的位置
  Cannotedit;  //不允许输入
  ButtonOkCancel;  //设置按钮的状态
  dispvalue;
end;

procedure TForm1.Button10Click(Sender: TObject);//确定
begin

  If (length(trim(Edit1.text))=0)  then  //编号为空
       begin
          ShowMessage('必须输入书号');
          edit1.SetFocus ;
       end
  else
    begin
       setvalue;
       table1.Post ;
    end;
    ButtonOkCancel;
end;

procedure TForm1.Button7Click(Sender: TObject);//修改
begin
  AddOrNot:=False;      // 不是增加操作
  CanEdit;
  ButtonAddEdit;
  table1.Edit ;   //修改记录
end;

procedure TForm1.Button8Click(Sender: TObject);//删除
begin
    if Application.MessageBox('真的要删除吗?','删除提示框',MB_OKCANCEL)=IDOK THEN
      Table1.Delete ;
   if table1.RecordCount =0 then
       begin
          ShowMessage('已无记录');
          DisabledButton;
          Button6.Enabled :=True;
       end
       else
          DispValue;

end;

procedure TForm1.Button9Click(Sender: TObject);  //查询
  var
    SM: string;
begin
    SM:=trim(inputbox('输入书名','请输入书名','')); //输入要查询的人的姓名
    with table1 do
      begin
         TABLE1.IndexFieldNames :='书名';
         if FindKey([SM])   then    //如果找到
           ShowMessage('查到了相应记录')
         else
            ShowMessage('无符合条件的记录');
      end ;
    DispValue;
end;

procedure TForm1.DBGrid1CellClick(Column: TColumn);  //显示当前记录
begin
   dispvalue;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -