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

进入帮忙解释下这样写什么意思

2013-03-26 
进来帮忙解释下这样写什么意思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))

热点排行