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

📄 unit1.pas

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

interface

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

type
  TForm1 = class(TForm)
    Table1: TTable;
    DataSource1: TDataSource;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    Button7: TButton;
    Button8: TButton;
    Button9: TButton;
    Button10: TButton;
    Button11: TButton;
    DBGrid1: TDBGrid;
    Query1: TQuery;
    Edit1: TEdit;
    Edit2: TEdit;
    ComboBox1: TComboBox;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    Edit7: TEdit;
    Edit8: TEdit;
    Memo1: TMemo;
    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 Button7Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure Button9Click(Sender: TObject);
    procedure Button10Click(Sender: TObject);
    procedure Button11Click(Sender: TObject);
    procedure DBGrid1CellClick(Column: TColumn);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation
 Var
   BM:TBookMark;       //该变量用于在添加记录时把当前记录位置作为一个书签
   AddOrNot:Boolean;    //该变量用来表示是添加操作还是修改操作,True表示添加
{$R *.dfm}
Procedure DispValue();     //在编辑框中显示当前记录的内容
   begin
     Form1.Edit1.Text :=Form1.Table1.fieldbyname('好友号').asstring;
     Form1.Edit2.Text :=Form1.Table1.fieldbyname('姓名').asstring;
     Form1.ComboBox1.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;
     Form1.Edit7.Text :=Form1.Table1.fieldbyname('电子邮件').asstring;
     Form1.Edit8.Text :=Form1.Table1.fieldbyname('QQ号码').asstring;
     Form1.Memo1.Text :=Form1.Table1.fieldbyname('交往大事').asstring;
   end;
Procedure ClearValue();     //消除在编辑框中显示的内容
   begin
     Form1.Edit1.Text :='';
     Form1.Edit2.Text :='';
     Form1.ComboBox1.Text  :='';
     Form1.Edit3.Text :='';
     Form1.Edit4.Text :='';
     Form1.Edit5.Text :='';
     Form1.Edit6.Text :='';
     Form1.Edit7.Text :='';
     Form1.Edit8.Text :='';
     Form1.Memo1.Text :='';
   end;
Procedure  ButtonAddEdit(); //用来设置执行添加或修改操作时各按钮的状态
    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 :=True; // 确定按钮可以使用
       Form1.Button11.Enabled :=True; //取消按钮可以使用
    end;
  Procedure  ButtonOkCancel();//用来设置执行取消或确定操作时各按钮的状态
    begin
       Form1.Button1.Enabled  :=True;
       Form1.Button2.enabled:=True;
       Form1.Button3.Enabled :=True;
       Form1.Button4.Enabled :=True;
       Form1.Button5.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.ComboBox1.Enabled :=False;
       Form1.Edit3.readOnly:=True;
       Form1.Edit4.readOnly:=True;
       Form1.Edit5.readOnly:=True;
       Form1.Edit6.readOnly:=True;
       Form1.Edit7.readOnly:=True;
       Form1.Edit8.ReadOnly :=True;
       Form1.Memo1.readonly:=True;
     end;
   Procedure  Canedit();//用来设置各输入的数据控制组件可以输入
     begin
       Form1.Edit1.readOnly:=False;
       Form1.Edit2.readOnly:=False;
       Form1.ComboBox1.Enabled  :=True;
       Form1.Edit3.readOnly:=False;
       Form1.Edit4.readOnly:=False;
       Form1.Edit5.readOnly:=False;
       Form1.Edit6.readOnly:=False;
       Form1.Edit7.readOnly:=False;
       Form1.Edit8.readonly:=False;
       Form1.Memo1.ReadOnly :=False;
     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
   Curdir:string;
begin
  getdir(0,Curdir);
  table1.DatabaseName:=Curdir;   //设置Table1的Databasename为当前目录
  table1.Active :=True; //打开Table1
  Cannotedit;   //设置可输入组件为只读
  if table1.RecordCount =0 then  //如果数据库表为空
     begin
         disabledButton;
         Button6.Enabled :=True; //只有添加按钮可用
     end
     else
        ButtonOkCancel;
  Table1.IndexName :='XM';   //设置查询用的索引名
  DispValue;
  Query1.DatabaseName:=Curdir;   //设置Table1的Databasename为当前目录
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;  //是增加操作
end;
 procedure TForm1.Button7Click(Sender: TObject); //修改
begin
  AddOrNot:=False;      // 不是增加操作
  CanEdit;
  ButtonAddEdit;

end;
procedure TForm1.Button8Click(Sender: TObject); //删除
  var
   hyh:string;
begin
   if Application.MessageBox('真的要删除吗?','删除提示框',MB_OKCANCEL)=IDOK THEN
       begin
          hyh:=Table1.FieldbyName('好友号').AsString ;
          query1.SQL.Clear ;
          query1.SQL.Add('Delete From TXL WHERE 好友号=(:A1)');
          QUERY1.Params[0].AsString :=hyh;
          QUERY1.ExecSQL ;
          TABLE1.Refresh ;
          DispValue;
       end;

end;

procedure TForm1.Button9Click(Sender: TObject);   //按姓名查询
  var
    xm: string;
begin
    xm:=trim(inputbox('输入姓名','请输入姓名','')); //输入要查询的人的姓名
    with table1 do
      begin
         setkey;   //设置查询状态
         FieldByName('姓名').AsString :=xm;//设置要查询的姓名
         if not GotoKey   then    //如果没有找到
            ShowMessage('无符合条件的记录');
      end
end;

procedure TForm1.Button10Click(Sender: TObject);   //确定操作
  var
     hyh:string;
begin

  If (length(trim(Edit1.text))=0)  then  //好友号为空
       begin
          ShowMessage('必须输入好友号');
          edit1.SetFocus ;
       end
  else
    begin
       if AddOrNot then
          begin
             Query1.SQL.Clear ;
             Query1.SQL.Add('INSERT INTO 通讯录(好友号,姓名,好友类别,年龄,出生日期,电话号码,通信地址,电子邮件,QQ号码,交往大事)') ;
             Query1.SQL.Add('Values ((:P1),(:P2),(:P3),(:P4),(:P5),(:P6),(:P7),(:P8),(:P9),(:P10))');
          end
          else
             begin
                    hyh:=Table1.fieldbyname('好友号').AsString ;
                    Query1.SQL.Clear ;
                    query1.SQL.Add('Update 通讯录 SET 好友号=(:P1),姓名=(:P2),好友类别=(:P3)');
                    query1.SQL.Add(',年龄=(:P4),出生日期=(:P5),电话号码=(:P6)');
                    query1.SQL.Add(',通信地址=(:P7),电子邮件=(:p8),QQ号码=(:P9),交往大事=(:P10)');
                    Query1.SQL.Add('WHERE 好友号=(:P11)');
                    QUERY1.Params[10].AsString:=hyh ;
             end;
       Query1.Params[0].AsString:=Edit1.Text ;
       Query1.Params[1].AsString :=Edit2.Text ;
       Query1.Params[2].Asstring:=Combobox1.Text ;
       Query1.Params[3].AsSmallInt :=strtoint(Edit3.Text );
       Query1.Params[4].AsDate :=strtodate(edit4.Text);
       Query1.Params[5].AsString :=Edit5.Text;
       Query1.Params[6].AsString :=Edit6.Text ;
       Query1.Params[7].AsString :=Edit7.Text ;
       Query1.Params[8].AsString :=Edit8.Text ;
       Query1.Params[9].AsString :=Memo1.Text ;
       Query1.ExecSQL ;
       CannotEdit;
       ButtonOkCancel;
       Table1.Refresh ;
    end;


end;

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

procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
  DispValue;
end;

end.

⌨️ 快捷键说明

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