此函数创建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);
现在。函数中的代码没有任何问题吗?例如,有什么东西不会挂在内存的某个地方吗?
答案 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;