动态创建控件(100分)

  • 主题发起人 主题发起人 张仪
  • 开始时间 开始时间

张仪

Unregistered / Unconfirmed
GUEST, unregistred user!
我有一A表。A中有字段名为个数。我想动态创建按钮,根据此字段名个数创建考虑排版问题及按钮的间距。
 
可以啊,动态创建是
TBuuton.Create(Form)
用一个数组保存起来,就是

for i:= 0 to count-1 do
begin
BtnArray:=TBuuton.Create(YourForm);
BtnArray.Parent:=YourForm;
......
end

然后根据数量来调整 Button 的 Width 和 Left
 
好象应该这样。
for i:= 0 to count-1 do
begin
BtnArray:=TBuuton.Create(YourForm);
YourForm.InsertComponent(BtnArray);
......
end

 
一样的。都可以。
 
还少了:



BtnArray.OnClick:=MyBtnClick;
 
agree Pipi.

BtnArray:=TBuuton.Create(YourForm);
已经指定了Button的Owner是YourForm
然后给Button.Parent赋值,这样就可以显示Button了

YourForm.InsertComponent(BtnArray);
所做的工作就是指定Button的Owner是YourForm
 
button.Parent:=YourForm 或者 YourForm.InsertControl(button) 都可以
delphi帮助推荐用button.Parent:=YourForm

至于 hexi 说的 insertComponent 是没有必要的(已经在Create中指定了)
是没有用处的(不会在YourForm中显示出来)
 
我要响应动态控件的click 事件该如何做
 
BtnArray.OnClick:=MyBtnClick;
 
在类里写个 procedure MyBtnClick(sender:TObject)

BtnArray.OnClick:=MyBtnClick;
 
要是数据感知控件。dbedit与数据源相连道理是否也相同
 
每个生成的控件与表中字段相连
 
datasource
datafield
 
接受答案了.
 
后退
顶部