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

📄 txlfrm.pas

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

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button4: TButton;
    Button3: TButton;
    Label1: TLabel;
    EditNo: TEdit;
    Label2: TLabel;
    EditName: TEdit;
    Label3: TLabel;
    Editage: TEdit;
    Label4: TLabel;
    EditSex: TEdit;
    Label5: TLabel;
    EditAddress: TEdit;
    Label6: TLabel;
    EditPhone: TEdit;
    Label7: TLabel;
    EditCode_Bm: TEdit;
    ChkMarriage: TCheckBox;
    Button5: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
   Procedure   ClsValue() ;
   Procedure  OkOrCancel();
   Procedure  AddOrReadpro();
var
  Form1: TForm1;

implementation

type
   TXL= record           //定询通信录记录型
      No:String[10];
      Name: string[10];
      Age:integer;
      Sex:String[2];
      Address:string[30];
      Phone:String[10];
      Code_Bm:string[10];
      Marriage:Boolean;
  end;
  TXLLIST = file of TXL;            //定义记录文件类型
 var
   Vtxl:TXLLIST;                    //定义文件类型变量
   AddOrRead:Boolean;   //该变量用来标记用户是输入记录还是修改记录
   TXLA:TXL;   //定义记录型变量
   RNO:Integer;      //该变量用来记录当前记录号

{$R *.dfm}

Procedure DispValue(txla:TXL);   //该过程用来把一条记录的信息显示出来
   begin
      Form1.EditNo.Text:=Txla.No ;
      Form1.EditName.Text :=Txla.Name ;
      Form1.Editage.Text  :=IntTostr(txla.Age );
      Form1.EditSex.Text  :=txla.Sex ;
      Form1.EditAddress.Text :=Txla.Address;
      Form1.EditPhone.Text :=Txla.Phone ;
      Form1.EditCode_Bm.Text :=Txla.Code_Bm ;
      Form1.ChkMarriage.Checked :=txla.Marriage;
   end;
Procedure SetValue(Var txla:txl); //该过程把界面上的修改或输入存放到一个记录型变量中
   begin
      Txla.No:=Form1.EditNo.Text ;
      Txla.Name :=Form1.EditName.Text ;
      Txla.Age :=Strtoint(Form1.EditAge.Text );
      Txla.Sex :=Form1.EditSex.Text ;
      Txla.Address :=Form1.EditAddress.Text ;
      Txla.Phone :=Form1.EditPhone.Text ;
      Txla.Code_Bm :=Form1.EditCode_Bm.Text ;
      Txla.Marriage :=Form1.ChkMarriage.Checked ;
   end;
procedure ControlEnabled();//执行该过程后,用户能够输入或修改记录信息
   begin
      Form1.EditNo.Enabled :=True;
      Form1.EditName.Enabled :=True;
      Form1.Editage.Enabled :=True;
      Form1.EditSex.Enabled :=True;
      Form1.EditAddress.Enabled :=True;
      Form1.EditPhone.Enabled :=True;
      Form1.EditCode_Bm.Enabled :=True;
      Form1.ChkMarriage.Enabled :=True;
   end;
procedure ControlDisabled();//执行该过程后,用户不能输入或修改记录信息
   begin
      Form1.EditNo.Enabled :=False;
      Form1.EditName.Enabled :=False;
      Form1.Editage.Enabled :=False;
      Form1.EditSex.Enabled :=False;
      Form1.EditAddress.Enabled :=False;
      Form1.EditPhone.Enabled :=False;
      Form1.EditCode_Bm.Enabled :=False;
      Form1.ChkMarriage.Enabled :=False;
   end;
Procedure   ClsValue() ;  //清除界面上的各控件内容
  begin
    Form1.EditNo.text:='';
    Form1.EditName.text:='';
    Form1.EditAge.text:='';
    Form1.EditSex.text:='';
    Form1.EditAddress.text:='';
    Form1.EditPhone.text:='';
    Form1.EditCode_Bm.text:='';
    Form1.ChkMarriage.Checked :=False;
  end;
Procedure  OkOrCancel();
  begin
     Form1.Button1.Enabled :=True;
     Form1.Button2.Enabled :=True;
     Form1.Button3.Enabled:=False;
     Form1.Button4.Enabled :=False;
  end;
 Procedure  AddOrReadpro();
  begin
     Form1.Button1.Enabled :=False;
     Form1.Button2.Enabled :=False;
     Form1.Button3.Enabled:=True;
     Form1.Button4.Enabled :=True;
  end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  clsValue;
  OkOrCancel;
  ControlDisabled();
  AssignFile(Vtxl,'d:\aP.dat');//把文件型变量与磁盘文件名联系在一起
  if fileexists('d:\aP.dat') then//如果文件存在
     Reset(vtxl)  //以读写方式打开它
  else
     rewrite(vtxl); //如果文件不存在,创建文件
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  AddOrRead:=True;
  AddOrReadPro;
  ControlEnabled;
  ClsValue();
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  AddOrRead:=False;
  AddOrReadpro;
  Rno:=strtoint(InputBox('输入记号号','请输入记录号','1'));
  //输入在读取的记录号
  ShowMessage('记录数是:'+IntToStr(FileSize(vTxl)));
  Seek(Vtxl,Rno-1);
  //设置记录指针到要读取记录的位置
  Read(Vtxl,Txla);  //读取一条记录
  DispValue(txla);//把该记录的内容显示在界面上
  ControlEnabled;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
 If AddOrRead then     //如果是输入记录
    begin
      setvalue(Txla);  //把界面上的输入存放到一个记录变量中
      Seek(vtxl,Filesize(vtxl)); //定位到文件尾部
      write(vtxl,txla); //写入记录
    end
    else
       begin
         setvalue(Txla); //把界面上的输入存放到一个记录变量中
         Seek(Vtxl,Rno-1); //定位到要写入的位置
         write(vtxl,txla); //写入记录
       end;
  OkOrCancel;
  ControlDisabled;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  OkOrCancel;
  ControlDisabled;
  Dispvalue(Txla);  //把记录变量的值显示在界面上
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
  CloseFile(VTXL); //关闭文件
  Application.Terminate ;
end;

end.

⌨️ 快捷键说明

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