大难题啊(treeview),各位大哥来帮帮我啊! ( 积分: 50 )

  • 主题发起人 主题发起人 lsh998
  • 开始时间 开始时间
L

lsh998

Unregistered / Unconfirmed
GUEST, unregistred user!
是这样的:
一个主窗体 treeview 有很多个节点,我左击某个节点
就弹出一个新的窗体,新的窗体上有个 edit 和 button1

当我 单击 新窗体的 button1 按钮,就需要把 edit.text 的值
写到 主窗体 treeview 节点(就是刚才左击的节点)的 data 属性里

现在问题:
单击 新窗体的 button1 按钮,怎么对应到
treeview 节点(就是刚才左击的节点)呢?

是不是定义个全局变量
我左击节点时,把某个值写到 这个变量里
那到底要写个什么值呢?
(是 treeview 的个数,好像也不行)

我这样新建窗口的
GzzSxForm:=TGzzSxForm.Create(self);
try
GzzSxForm.ShowModal;
finally
GzzSxForm.Free;
end;
这样弹出的是模态窗口吗?

谢谢!
 
弹出的是模态窗口
MainForm.TreeView.Selected.Text := Edit1.Text;
 
procedure TForm2.Button1Click(Sender: TObject);
begin
Assert(Form1.TreeView1.Selected <> nil);
Form1.TreeView1.Selected.Data := PChar(edit1.Text);
end;

这样不行啊
谢谢!
 
data是啥東西,不是要text啊
 
上面的应该可以
 
哈哈,这还不easy
当然用data来绑定了,在你弹出模式窗体的时候加个Ttreenode的参数传给改模式窗体不就行了,给你看一个小例子看看data的用法:

unit Unit1;

interface

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

type
TForm1 = class(TForm)
TreeView1: TTreeView;
Edit1: TEdit;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
i: integer = 0;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
inc(i);
TreeView1.Selected.Data:= pointer(i);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Edit1.Text:= IntToStr(integer(TreeView1.Selected.data))
end;

end.
 
在弹出修改Form前用一个变量来定位:
Var
anode : TTreeNode;
Begin
anode := TreeView1....
其实你的TGzzSxForm只是一个获取String的过程,没有必要在TGzzSxForm中修改节点的属性。
 
怎么楼主问题还没解决吗?
 
多人接受答案了。
 

Similar threads

回复
0
查看
826
不得闲
D
回复
0
查看
846
DelphiTeacher的专栏
D
D
回复
0
查看
856
DelphiTeacher的专栏
D
D
回复
0
查看
686
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部