创建一个控制对象并从Delphi中的函数返回它

时间:2013-04-21 01:55:45

标签: delphi delphi-7

此函数创建TEdit类型的控件对象,并将其返回到恰好从其调用的代码中的任何行:

function TBaseForm.CreateEdit(AOwner: TWinControl;
                              inTop, inLeft, inWidth: integer) : TEdit;
var
    edt: TEdit;
begin
    edt := TEdit.Create(AOwner);
    with edt do begin
        Parent := AOwner;
        Width  := inWidth;
        Top    := inTop;
        Left   := inLeft;
    end;
    result := edt;
end;

后面的代码:

edtTitle := CreateEdit(Self, 20, 90, 300);

现在。函数中的代码没有任何问题吗?例如,有什么东西不会挂在内存的某个地方吗?

1 个答案:

答案 0 :(得分:1)

没有内存泄漏。

你可以更干净地做到(虽然我仍然不确定你为什么这样做),并避免额外的变量edt

function TBaseForm.CreateEdit(AOwner: TWinControl;
                              inTop, inLeft, inWidth: integer) : TEdit;
begin
  Result := TEdit.Create(AOwner);
  Result.Parent := AOwner;
  Result.Width  := inWidth;
  Result.Top    := inTop;
  Result.Left   := inLeft;
end;