Delphi中能否动态添加控件?

2024-11-06 14:03:01
推荐回答(2个)
回答1:

其实Delphi里有不下5种的解困仔决办法,因为Component都为对象,其内存分派都在全局堆长进行,而不是在栈中数悔,所以简单的办法就是用一个Tlist保护薯尺正你的动态生成的Componnet, 用完再释放,例如:var fList : TList function CreateObj(aOwner: TComppentn) : TComponent; begin Result := TSpeedButton.Create(aOwner); Result.Parnet := ..; ... porcedure CreateButtonArray(aOwner : TComponent); var i : integer; begin for i := 0 to 100 do fList.Add(CreateObj(aOwner)); End; procedure FreeObj; var begin if fList <> nil then for i := 0 to fList.Count do ...... TSpeedButton(fList[i]).free; End; i : integer; initialization End; fList := TList.Create; finalization FreeObj;End.

回答2:

varbut:Tbutton;end;begin没态衫有but:=Tbutton.create(self);but.caption:='毕旅...'帆数腔;but.left:=120;..but.onclick:=someTnotifyevent;