delphi 如何實現動態物件
有什方法可以在不知到物件數目的情況下
在執行時期動態產生物件
就像是ValArray一樣可以變大變小
1.宣告動態陣列, 例: edt: array of TEdit;
2.設定動態陣列的長度, 例: SetLength(edt, 10);
3.動態 create 元件, 例:
var
i: integer;
begin
for i := 0 to 9 do
begin
edt[i] := TEdit.Create;
edt[i].Parent := Form1;
edt[i].Left := ...;
edt[i].Top := ...;
end;
end;
SetLength(edt, 10);
它適合""非物件""的動態ㄝ
我看它的原始碼是利用記憶體抓取的方法
我有查到有一種物件TObjectList不知到這個行不行
或是更上層的Tlist也市不錯用的
我想會出現記憶體錯誤的情形在於重設陣列大小之前
還必須手動將不要用的 TEdit Free 掉
TObjectList 也是個很好的選擇!
就是要如何釋放掉ㄋ
用TEdit[i].free OR TEdit[i].Destroy
OR SetLength(TEdit,0) OR freeMem(@TEdit) OR......
前三種都是過嚕會出現"無效指標"
edt[i].Free;
edt[i] := nil;
或
FreeAndNil(edt[i]);
沒有留言:
張貼留言