|
发表于 2020-8-4 00:00:06
|
显示全部楼层
本帖最后由 kaixin9611 于 2020-8-4 00:13 编辑
利用ini配置文件进行储存的基础上实现Treeview和Edit互访功能
- unit Unit1;
- interface
- uses
- Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
- System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs,
- Vcl.ComCtrls, Vcl.StdCtrls, System.IniFiles, System.StrUtils;
- type
- TForm1 = class(TForm)
- TreeView1: TTreeView;
- Edit1: TEdit;
- Edit2: TEdit;
- Edit3: TEdit;
- Edit4: TEdit;
- Button1: TButton;
- procedure FormCreate(Sender: TObject);
- procedure TreeWrite();//Treeview1节点写入
- procedure TreeRead();//Treeview1节点读入
- procedure Button1Click(Sender: TObject);//这个按钮是用来修改Edit后更新Treeview1内容的
- private
- { Private declarations }
- public
- { Public declarations }
- end;
- var
- Form1: TForm1;
- implementation
- {$R *.dfm}
- procedure TForm1.Button1Click(Sender: TObject);
- begin
- TreeWrite();
- TreeRead();
- end;
- procedure TForm1.FormCreate(Sender: TObject);
- var
- ini: TIniFile;
- I: Integer;
- a: string;
- begin
- //创建ini文件,初始化ini
- ini := TIniFile.Create(ExtractFilePath(ParamStr(0)) + '\Config.ini');
- //判断ini文件是否存在,如果不存在就写入ini文件内容
- if FileExists(ExtractFilePath(ParamStr(0)) + '\Config.ini') = False then
- begin
- ini.WriteString('P0', 'Edit1', '5mm');
- ini.WriteString('P0', 'Edit2', '银色');
- ini.WriteString('P0', 'Edit3', '钢板');
- ini.WriteString('P0', 'Edit4', '锻造');
- end;
- //计次循环读出ini文件的内容
- for I := 1 to 4 do
- begin
- a := a + ini.ReadString('P0', 'Edit' + IntToStr(I), '');
- TEdit(FindComponent('Edit' + IntToStr(I))).Text := ini.ReadString('P0', 'Edit' + IntToStr(I), ''); //这句比较有意思,根据Edit名字寻找Edit控件组,并批量赋值
- end;
- TreeView1.Items.AddChild(nil, a); //程序第一次读出并写入Treeview1节点内容
- TreeView1.Items.Item[0].Selected := True; //选中Treeview1第一个节点
- end;
- procedure TForm1.TreeWrite();
- var
- ini: TIniFile;
- I: Integer;
- begin
- //创建ini文件,初始化ini
- ini := TIniFile.Create(ExtractFilePath(ParamStr(0)) + '\Config.ini');
- //判断ini文件是否存在,如果存在就写入ini文件内容
- if FileExists(ExtractFilePath(ParamStr(0)) + '\Config.ini') = True then
- begin
- //计次循环写入到ini文件内容
- for I := 1 to 4 do
- begin
- ini.WriteString('P0', 'Edit' + IntToStr(I), TEdit(FindComponent('Edit' + IntToStr(I))).Text);
- end;
- end;
- end;
- procedure TForm1.TreeRead();
- var
- ini: TIniFile;
- I: Integer;
- a: string;
- begin
- ini := TIniFile.Create(ExtractFilePath(ParamStr(0)) + '\Config.ini');
- if FileExists(ExtractFilePath(ParamStr(0)) + '\Config.ini') = True then
- begin
- //如果选中的话,-1就是不选中
- if TreeView1.Selected.Index <> -1 then
- begin
- //计次循环读取ini文件节点内容
- for I := 1 to 4 do
- begin
- a := a + ini.ReadString('P0', 'Edit' + IntToStr(I), ''); //把内容依次读入局部变量a
- TEdit(FindComponent('Edit' + IntToStr(I))).Text := ini.ReadString('P0', 'Edit' + IntToStr(I), '');
- end;
- TreeView1.Items.Item[TreeView1.Selected.Index].Text := a; //向选中的Treeview1的节点写入内容,必须是选中的,没选中就没反应
- end;
- end;
- end;
- end.
复制代码
|
|