程式中動態生成控制項的方法分為三步,首先,定義生成的控制項型別,再用create函式生成控制項,最後對控制項的相關屬性賦值。以tbutton控制項為例,步驟如下:
---- a. 定義控制項型別
var
button1:tbutton;
---- b.生成控制項
button1:=tbutton. create(self);
button1.parent:=self;
//一般將其父控制項設定為self,如果不設定parent的值,
則控制項不會在螢幕
//顯示出來
---- c.設定其它屬性及定義相關事件響應函式,如caption,left,top,height,width,visible,enabled,hint和onclick事件響應函式等。
//這裡有乙個子過程,後面付例子,一看就明白
//designed by quark
unit expro_wincontrols;
inte***ce
uses
windows, messages, sysutils, classes, graphics, controls, forms, dialogs,
stdctrls, buttons, comctrls, extctrls, grids;
//動態建立控制項
function dynacreatecomponent(ownername: tcomponent; comptype: tcontrolclass; compname: string; v_left,v_top,v_width,v_height:integer): tcontrol;
implementation
function dynacreatecomponent(ownername: tcomponent; comptype: tcontrolclass; compname: string; v_left,v_top,v_width,v_height:integer): tcontrol;
begin
if (ownername.findcomponent(compname)<>nil) and not(ownername.findcomponent(compname) is tcontrol) then
begin
result := nil;
exit;
end;
result := ownername.findcomponent(compname) as tcontrol;
if result=nil then
begin
result := comptype.create(ownername);
with result do
begin
if ownername is twincontrol then
begin
setbounds(v_left,v_top,v_width,v_height);
parent := twincontrol(ownername);
if ownername is tform then tform(ownername).activecontrol := twincontrol(result);
end;
end;
result.name := compname;
end
else
if not(result is comptype) then
begin
result := nil;
exit;
end;
result.visible := true;
end;
end.
Delphi程式中動態生成控制項的方法及應用
一 delphi中生成控制項的兩種方法 1 form 表單 設計中生成控制項 在進行form設計時,直接在控制項工具箱選擇所需控制項,再設定其屬性與響應事件,這種方法比較常見。2 程式中動態生成控制項 1 定義控制項型別 varbutton1 tbutton 2 生成控制項 button1 tbut...
android動態生成控制項
方法 呼叫布局容器的addview,addview需傳入的引數就是你想放置的view 這裡給出乙個例子 final linearlayout layout new linearlayout this layout.setorientation linearlayout.vertical setcon...
Unity UGUI動態生成控制項
一 首先你得先清楚recttransform元件的一些程式控制 1.先得到ugui控制項上面的recttransform元件 recttransform rtr gameobject.getcomponent 2.設定top和bottom值 rtr.offsetmax new vector2 rtr...