我增加这个域的目的是对于每个TreeNode都保存数据库中相应的关键字,以便在操作TreeView的时候能迅速定位到数据库中的某条记录,从而使得操作TreeView中的结点时,对数据库的增加、修改、删除、查询也变得很容易。
请问懂得VCL组件设计的朋友们,我应该怎样实现我的这个想法?
问题也许很简单,但请帮助我一下。多谢了
请问懂得VCL组件设计的朋友们,我应该怎样实现我的这个想法?
问题也许很简单,但请帮助我一下。多谢了
解决方案 »
- delphi XE3下,如何控制输入法的输入框位置?
- general sql error 错误
- 请教问题:我在ActionList里面创建ClientDataSetApply等敏感TOOLBUTTON,为什么不可以用?
- 怎么在access数据库里面添加一个字段(用程序实现)
- 在delphi中如何将一个ASCII码转换成字符的形式呀!!急求!
- 高分求援!怎样读取外部程序的StringGrid表格中所有内容?
- 关于SQL Server -> Oracle...
- 请教windows,delphi消息处理机制。
- 关注!!!
- 哪儿有用delphi写的简单收发邮件的源程序下载啊
- 请问一个虚拟键盘如何实现???高分求救,不够在加!!!
- 在线求助:怎么用adoquery实现多个表中日期的计算。
就可以实现
P = ^R;
R = record
i:integer; //这个就是你要带的整数
end;var
pt:P;
lt:TList;...//增加2个带有integer域的结点
procedure TForm1.Button1Click(Sender: TObject);
begin
lt := TList.Create;
new(pt);
pt.i := 1; //integer域里的值
lt.Add(pt);
TreeView1.Items.AddChildObject(nil,'aa',lt.Items[0]);
new(pt);
pt.i := 2; //
lt.Add(pt);
TreeView1.Items.AddChildObject(nil,'aa',lt.Items[1]);
end;//显示每个结点integer域里的值
procedure TForm1.TreeView1Click(Sender: TObject);
begin
if TreeView1.Selected = nil then Exit;
ShowMessage(IntToStr(P(TreeView1.Selected.Data)^.i));
end;以上代码调试通过
private
{ Private declarations }
FChecked: Boolean;
procedure SetChecked(const Value: Boolean);
public
{ public declarations }
property Checked: Boolean read FChecked write SetChecked;
end;// TCheckTreeView = Class(TTreeView)
procedure TCheckTreeView.CreateCheckNodeClass(Sender: TCustomTreeView;
var NodeClass: TTreeNodeClass);
begin
NodeClass := TCheckTreeNode;
end;使用:
var
Node: TCheckTreeNode;
begin
Node := TCheckTreeNode(TreeView.Items.GetFirstNode);
Node.Checked := False;
end;
另外,最好把这段扩展并单独放在一个类里.
type
P = ^R;
R = record
i:integer; //这个就是你要带的整数
end;