📄 txlfrm.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 + -