PEmployee = ^Employee; 这个是定义 摘抄
Employee = record
ID,
BranchID :Integer;
LoginName,
Password :String[20];
Name :String[40];
Sex :String[1];
State :String[20];
end;Me :PEmployee; 摘抄 if PEmployee(TbsskinTreeview.Selected.Data).ID = Me.ID then 这个是其中的一条语句
begin
MessageBox(Handle, '不能与您自己对话!', '提示', MB_ICONINFORMATION);
exit;
end;
TbsskinTreeview.Selected.Data是没有ID这个属性的,ID是PEmployee给出来的PEmployee(TbsskinTreeview.Selected.Data).ID 这样写究竟是什么意思·· 搞不明白啊~~~~
Employee = record
ID,
BranchID :Integer;
LoginName,
Password :String[20];
Name :String[40];
Sex :String[1];
State :String[20];
end;Me :PEmployee; 摘抄 if PEmployee(TbsskinTreeview.Selected.Data).ID = Me.ID then 这个是其中的一条语句
begin
MessageBox(Handle, '不能与您自己对话!', '提示', MB_ICONINFORMATION);
exit;
end;
TbsskinTreeview.Selected.Data是没有ID这个属性的,ID是PEmployee给出来的PEmployee(TbsskinTreeview.Selected.Data).ID 这样写究竟是什么意思·· 搞不明白啊~~~~
你看看前文,添加到Data中的数据是不是PEmployee类型;所以取值的时候要转换成对应的类型,即PEmployee(...)
treeview的node有一个data属性,保留指针,那么
PEmployee(TbsskinTreeview.Selected.Data)就是讲data内容转为PEmployee指针,然后既可以访问PEmployee中的ID字段了
不过Delphi中可以省略 "^"
TbsskinTreeview.Selected.Data是 Pointer类型
Pointer是Delphi中最基本的指针类型..
所以就可以这样强制转化使用了. PEmployee(TbsskinTreeview.Selected.Data)^这里加"^" 是解除绑定的意思..
这里的节点,你在添加的时候应该是类似这样的
var
p: PEmployee;
begin
new(p);
//给P下所有数据进行赋值 操作
tv1.Items.AddChildObject(nil,'显示信息',TObject(p))