首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

进来帮忙解释上这样写什么意思

2012-08-17 
进来帮忙解释下这样写什么意思PEmployee ^Employee这个是定义摘抄Employee recordID,BranchID:Intege

进来帮忙解释下这样写什么意思
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 这样写究竟是什么意思·· 搞不明白啊~~~~




[解决办法]
强制类型转换

因为Data是Pointer指针类型,可以保存任何指针类型的数据
你看看前文,添加到Data中的数据是不是PEmployee类型;所以取值的时候要转换成对应的类型,即PEmployee(...)

[解决办法]
PEmployee(TbsskinTreeview.Selected.Data).ID 
treeview的node有一个data属性,保留指针,那么
PEmployee(TbsskinTreeview.Selected.Data)就是讲data内容转为PEmployee指针,然后既可以访问PEmployee中的ID字段了
[解决办法]
PEmployee(TbsskinTreeview.Selected.Data).ID 

实际上应该是 PEmployee(TbsskinTreeview.Selected.Data)^.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))

热点排行