获取指针的成员

时间:2014-02-22 10:17:16

标签: delphi delphi-xe2

我有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的其他指针的情况下访问它?

1 个答案:

答案 0 :(得分:3)

你只需要施放。如果您准备断言Target2TLabel,那么请使用经过检查的演员:

var
  Lbl: TLabel;
....
Lbl := Target2 as TLabel;

否则请使用is进行检查,然后选择未经检查的强制转换:

if Target2 is TLabel then
begin
  Lbl := TLabel(Target2);
  ....

您不需要销毁Lbl,因为它只是对其他人拥有的对象的引用。