2013-04-21 30 views
1

返回它這個函數創建TEDIT類型的控制對象,並將其返回到它發生的代碼的任何行從調用:創建一個控制對象和函數在Delphi

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

沒有內存泄漏。

你可以做到這一點更乾淨(儘管我仍然不知道爲什麼你這樣做),並避免額外的變量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; 
+2

你應該解釋爲什麼* *是沒有泄漏。 – 2013-04-21 07:41:34

相關問題