鱼C论坛

 找回密码
 立即注册
查看: 2527|回复: 3

TreeView里面有3个节点,旁边有4个Edit组件,要实现互访功能

[复制链接]
发表于 2020-7-21 09:48:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您好,各位大爷:

请问怎么实现这两个功能:TreeView里面有3个节点,旁边有4个Edit组件,分别点击TreeView的3个节点,4个Edit组件会显示点击这个节点的汉字名称(如,点击第一个节点,第一个节点是5mm银色钢板锻造,旁边的4Edit组件就会显示:5mm,银色,钢板,锻造)
第二个功能,如改变第二个节点4Edit组件里的内容,TreeVieW第二个节点的内容也会改变,谢谢各位指教!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-8-4 00:00:06 | 显示全部楼层
本帖最后由 kaixin9611 于 2020-8-4 00:13 编辑

利用ini配置文件进行储存的基础上实现Treeview和Edit互访功能

  1. unit Unit1;

  2. interface

  3. uses
  4.   Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
  5.   System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs,
  6.   Vcl.ComCtrls, Vcl.StdCtrls, System.IniFiles, System.StrUtils;

  7. type
  8.   TForm1 = class(TForm)
  9.     TreeView1: TTreeView;
  10.     Edit1: TEdit;
  11.     Edit2: TEdit;
  12.     Edit3: TEdit;
  13.     Edit4: TEdit;
  14.     Button1: TButton;
  15.     procedure FormCreate(Sender: TObject);
  16.     procedure TreeWrite();//Treeview1节点写入
  17.     procedure TreeRead();//Treeview1节点读入
  18.     procedure Button1Click(Sender: TObject);//这个按钮是用来修改Edit后更新Treeview1内容的
  19.   private
  20.     { Private declarations }
  21.   public
  22.     { Public declarations }
  23.   end;

  24. var
  25.   Form1: TForm1;

  26. implementation

  27. {$R *.dfm}

  28. procedure TForm1.Button1Click(Sender: TObject);
  29. begin
  30.   TreeWrite();
  31.   TreeRead();
  32. end;

  33. procedure TForm1.FormCreate(Sender: TObject);
  34. var
  35.   ini: TIniFile;
  36.   I: Integer;
  37.   a: string;
  38. begin
  39. //创建ini文件,初始化ini
  40.   ini := TIniFile.Create(ExtractFilePath(ParamStr(0)) + '\Config.ini');
  41.   //判断ini文件是否存在,如果不存在就写入ini文件内容
  42.   if FileExists(ExtractFilePath(ParamStr(0)) + '\Config.ini') = False then
  43.   begin
  44.     ini.WriteString('P0', 'Edit1', '5mm');
  45.     ini.WriteString('P0', 'Edit2', '银色');
  46.     ini.WriteString('P0', 'Edit3', '钢板');
  47.     ini.WriteString('P0', 'Edit4', '锻造');
  48.   end;
  49.   //计次循环读出ini文件的内容
  50.   for I := 1 to 4 do
  51.   begin
  52.     a := a + ini.ReadString('P0', 'Edit' + IntToStr(I), '');
  53.     TEdit(FindComponent('Edit' + IntToStr(I))).Text := ini.ReadString('P0', 'Edit' + IntToStr(I), ''); //这句比较有意思,根据Edit名字寻找Edit控件组,并批量赋值
  54.   end;
  55.   TreeView1.Items.AddChild(nil, a);        //程序第一次读出并写入Treeview1节点内容
  56.   TreeView1.Items.Item[0].Selected := True;  //选中Treeview1第一个节点
  57. end;

  58. procedure TForm1.TreeWrite();
  59. var
  60.   ini: TIniFile;
  61.   I: Integer;
  62. begin
  63.   //创建ini文件,初始化ini
  64.   ini := TIniFile.Create(ExtractFilePath(ParamStr(0)) + '\Config.ini');
  65.   //判断ini文件是否存在,如果存在就写入ini文件内容
  66.   if FileExists(ExtractFilePath(ParamStr(0)) + '\Config.ini') = True then
  67.   begin
  68.     //计次循环写入到ini文件内容
  69.     for I := 1 to 4 do
  70.     begin
  71.       ini.WriteString('P0', 'Edit' + IntToStr(I), TEdit(FindComponent('Edit' + IntToStr(I))).Text);
  72.     end;
  73.   end;
  74. end;

  75. procedure TForm1.TreeRead();
  76. var
  77.   ini: TIniFile;
  78.   I: Integer;
  79.   a: string;
  80. begin
  81.   ini := TIniFile.Create(ExtractFilePath(ParamStr(0)) + '\Config.ini');
  82.   if FileExists(ExtractFilePath(ParamStr(0)) + '\Config.ini') = True then
  83.   begin
  84.     //如果选中的话,-1就是不选中
  85.     if TreeView1.Selected.Index <> -1 then
  86.     begin
  87.       //计次循环读取ini文件节点内容
  88.       for I := 1 to 4 do
  89.       begin
  90.         a := a + ini.ReadString('P0', 'Edit' + IntToStr(I), ''); //把内容依次读入局部变量a
  91.         TEdit(FindComponent('Edit' + IntToStr(I))).Text := ini.ReadString('P0', 'Edit' + IntToStr(I), '');
  92.       end;

  93.       TreeView1.Items.Item[TreeView1.Selected.Index].Text := a; //向选中的Treeview1的节点写入内容,必须是选中的,没选中就没反应
  94.     end;
  95.   end;
  96. end;

  97. end.
复制代码


小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-8-4 00:02:22 | 显示全部楼层
如果想添加Treeview的节点,还要多写些code
但是以上内容已经解决你所说的问题了

以上代码均用Delphi写出,执行过没问题
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-6 15:59:21 | 显示全部楼层
好的,谢谢,你辛苦!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-28 00:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表