TRecCodeInfo=record
sRecCode:string; //接收手机号码
sRecName:string; //接受手机人
end;
PRecCodeInfo=^TRecCodeInfo;
str :string;
str:=PRecCodeInfo(cmbRecCode.Items.Objects[cmbRecCode.ItemIndex])^.sRecCode;
//cmbRecCode.Items.Objects[cmbRecCode.ItemIndex]这句是什么意思?
//还有这个符号^.又是什么意思,记录的成员应该是这样用呀PRecCodeInfo。sRecCode
sRecCode:string; //接收手机号码
sRecName:string; //接受手机人
end;
PRecCodeInfo=^TRecCodeInfo;
str :string;
str:=PRecCodeInfo(cmbRecCode.Items.Objects[cmbRecCode.ItemIndex])^.sRecCode;
//cmbRecCode.Items.Objects[cmbRecCode.ItemIndex]这句是什么意思?
//还有这个符号^.又是什么意思,记录的成员应该是这样用呀PRecCodeInfo。sRecCode
TRecCodeInfo=record
sRecCode:string; //接收手机号码
sRecName:string; //接受手机人
end;var
P:PrecCodeInfo
begin
new(P);
p.sReccode:='aaaa';
p.sRecName:='ddddd';
end;
指针取值
我猜想cmbRecCode应该是个列表结构(TList,或TStringList之类的),这个列表可以存放或携带一个对象(object),这句话就是取cmbRecCode当前元素(ItemIndex)的那个对象。 //还有这个符号^.又是什么意思,记录的成员应该是这样用呀PRecCodeInfo.sRecCode
^是指针的意思,所谓指针,就是地址。PRecCodeInfo=^TRecCodeInfo,就是声明
PRecCodeInfo是一个指向TRecCodeInfo结构的指针。 str:=PRecCodeInfo(cmbRecCode.Items.Objects[cmbRecCode.ItemIndex])^.sRecCode;就是取
cmbRecCode.Items.Objects[cmbRecCode.ItemIndex]这个对象,并把它强制类型转换为TRecCodeInfo类型,然后取出他的sRecCode的肉容(接收手机人),赋给Str变量。 明白了么?
所对应的指向手机信息的指针。
然后用PRecCodeInfo(...)将该指针强制类型转换为RecCodeInfo类型的指针。至于对指针理解,举个简单的例子,
如果定义:
aaa: RecCodeInfo;
bbb: PRecCodeInfo;
使用时:
ShowMessage(aaa.sRecCode);
ShowMessage(bbb^.sRecCode);