1

此函数创建一个 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);

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

4

1 回答 1

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;
于 2013-04-21T02:21:45.200 回答