我有TObject
名为Target2
,它是指向TLabel
的指针,并希望从此指针获取属性Name
。因此,我有这个
Procedure TGetName()
var
Item : TLabel;
Begin
if Target2 is TLabel then
begin
Item := Target2;
if Item.Name := 'SomeName' then
begin
....
dosomething();
end;
end;
end;
但是Item
现在成为指针的指针似乎毫无意义,但当我这样做时:
Procedure TGetName()
Begin
if Target2 is TLabel then
begin
if Target2.Name := 'SomeName' then
begin
....
dosomething();
end;
end;
end;
我误以为该名称不是Target2
的成员。因此,如何在不创建指向指针Target2
的其他指针的情况下访问它?
答案 0 :(得分:3)
你只需要施放。如果您准备断言Target2
是TLabel
,那么请使用经过检查的演员:
var
Lbl: TLabel;
....
Lbl := Target2 as TLabel;
否则请使用is
进行检查,然后选择未经检查的强制转换:
if Target2 is TLabel then
begin
Lbl := TLabel(Target2);
....
您不需要销毁Lbl
,因为它只是对其他人拥有的对象的引用。