在Delphi中使用“with”创建的引用对象实例

前端之家收集整理的这篇文章主要介绍了在Delphi中使用“with”创建的引用对象实例前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有没有办法引用使用“with”语句创建的对象实例?

例:

with TAnObject.Create do
begin
  DoSomething(instance);
end;

DoSomething将使用实例引用,就像您将实例从变量声明引用传递给创建的对象一样.

例:

AnObject := TAnObject.Create;

谢谢.

解决方法

那么,你可以使用这样的方法
// implement:

type
  TSimpleMethod = procedure of object;

function GetThis(const pr: TSimpleMethod): TObject;
begin
  Result := TMethod(pr).Data;
end;

// usage:

  with TStringList.Create do
  try
    CommaText := '1,2,3,4,5,6,7,8,9,0';
    ShowText(TStringList(GetThis(Free)));
  finally
    Free;
  end;

或班级助手:

type 
  TObjectHelper = class helper For TObject
  private
    function GetThis: TObject; Inline;
  public
    property This: TObject read GetThis;
  end;

...

function TObjectHelper.GetThis: TObject;
begin
  Result := Self;
end;

但实际上,之前的回复是正确的:你最好忘记“with”语句.

猜你在找的Delphi相关文章