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

📄 contact.pas

📁 Delphi7高级应用开发随书源码
💻 PAS
字号:
unit Contact;

interface

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

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    edtName: TEdit;
    edtTel: TEdit;
    edtOffice: TEdit;
    edtAddress: TEdit;
    btnFirst: TButton;
    btnPrevious: TButton;
    btnNext: TButton;
    btnLast: TButton;
    btnAppend: TButton;
    btnClear: TButton;
    btnClose: TButton;
    procedure FormCreate(Sender: TObject);
    procedure MoveToFirst(Sender: TObject);
    procedure Backward(Sender: TObject);
    procedure Next(Sender: TObject);
    procedure MoveToLast(Sender: TObject);
    procedure Add(Sender: TObject);
    procedure CloseForm(Sender: TObject);
    procedure ClearForm(Sender: TObject);


  private
    { Private declarations }
     procedure SaveRecord;
     procedure ShowRecord;
     procedure ClearData;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

//myself code
type
    Person = record
        name:string[8];
        phone:string[20];
        office:string[30];
        address:string[60];
    end;

var
    PersonFile: File of Person;
    PersonData:Person;
    myFile:string;
    RecSize,CurRec:Longint;

procedure TForm1.SaveRecord;
begin
    //向数据文件中添加一条新的数据记录
    PersonData.name := edtName.Text;
    PersonData.phone := edtTel.Text;
    PersonData.office := edtOffice.Text;
    PersonData.address := edtAddress.Text;

    Write(PersonFile,PersonData);
end;

procedure TForm1.ClearData;
begin
    //清除输入字段
    edtName.Text := '';
    edtTel.Text := '';
    edtOffice.Text := '';
    edtAddress.Text := '';
end;

procedure TForm1.ShowRecord;
begin
    //显示目前文件指针指向的那条记录
    Form1.edtName.Text := PersonData.name;
    Form1.edtTel.Text := PersonData.phone;
    Form1.edtOffice.Text := PersonData.office;
    Form1.edtAddress.Text := PersonData.address;

end;
procedure TForm1.FormCreate(Sender: TObject);
begin
    //当程序打开时初始化Form中的编辑框
    ClearData;
    CurRec := 0;                                   //设置目前文件的记录指针位置
    myFile := 'person.dat';   //设置保存数据的文件
    AssignFile(PersonFile,myFile);                 //将文件变量和文件相关联
    RecSize := SizeOf(PersonData);                 //计算每条数据记录的长度
    if FileExists(myFile) then
        begin
            Reset(PersonFile);
            if not Eof(PersonFile) then
            begin
                Read(PersonFile,PersonData);
                ShowRecord;
            end
        end
    else
        begin
            ClearData;
            ReWrite(PersonFile);
        end;
end;

procedure TForm1.MoveToFirst(Sender: TObject);
begin
    CurRec := 0;
    Seek(PersonFile,CurRec);      //把文件指针移到文件的开头
    Read(PersonFile,PersonData);
    ShowRecord;
end;

procedure TForm1.Backward(Sender: TObject);
begin
    //将文件的指针向后移一条记录
    if(CurRec - 1) < 0 then
        begin
            CurRec := 0;
            Seek(PersonFile,CurRec);
            ShowMessage('已经到达文件的开始!');
        end
    else
        begin
            CurRec := CurRec - 1;
            Seek(PersonFile,CurRec);
            Read(PersonFile,PersonData);
            ShowRecord;
        end;
end;

procedure TForm1.Next(Sender: TObject);
begin
    //把文件指针向前移动一条记录
    CurRec := CurRec +1;
    Seek(PersonFile,CurRec);
    if not Eof(PersonFile) then
        begin
            Read(PersonFile,PersonData);
            Seek(PersonFile,CurRec);
            ShowRecord;
        end
    else
        begin
            CurRec := CurRec -1;
            Seek(PersonFile,CurRec);
            ShowMessage('已经到达文件的末尾!');
        end;
end;

procedure TForm1.MoveToLast(Sender: TObject);
begin
    CurRec := FileSize(PersonFile) - 1;
    Seek(PersonFile,CurRec);    //把文件的指针移到文件的末尾
    Read(PersonFile,PersonData);
    ShowRecord;
end;

procedure TForm1.Add(Sender: TObject);
begin
    if Form1.edtName.Text <> '' then
    begin
        SaveRecord;
        ShowRecord;
        ShowMessage('已经把数据写入文件中!!');
        clearData;
    end;
end;

procedure TForm1.CloseForm(Sender: TObject);
begin
    SaveRecord;
    CloseFile(PersonFile);
    Close;
end;

procedure TForm1.ClearForm(Sender: TObject);
begin
    ClearData;
end;

end.

⌨️ 快捷键说明

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