怎样给动态加载的groupbox写入事件???怎样在新加载的groupbox上再动态加载label控件???急急,谢谢各位 ( 积分: 100 )

  • 主题发起人 主题发起人 蒹葭
  • 开始时间 开始时间

蒹葭

Unregistered / Unconfirmed
GUEST, unregistred user!
问题一:我现在动态加载了一些groupbox,我要在这些groupbox里写入,总是不行;
问题二:我还要在刚动态加载的groupbox里动态加载label,可是写入以下代码,用ScrollBox1.Components不行,请各位富翁指点,谢谢
WITH Tlabel.Create(ScrollBox1.Components) do
name := 'label1';
caption := '';
parent := (ScrollBox1.Components as tgroupbox);
left := 3;
top :=0;
height := 20;
width := 5;
color := ClRed;
 
问题一,因为你是动态加载控件,在你写程序时是找不到该控件的(无句柄),
你可以先添加一个一样的控件,在这个控件的相应事件中编写程序,然后删除这个控件(注意不要把程序也删了),再把这段程序封装在方法或过程中,这样你就可以调动了.
至于问题二,我是没有遇见过,但我想原因应该和问题一相同.
 
procedure TForm1.Button1Click(Sender: TObject);
var
gr:tgroupbox;
i:integer;
begin
gr:=tgroupbox.Create(self);
gr.Name:='fe';
gr.Parent:=self;
gr.Visible:=true;
gr.Top:=100;
gr.Left:=150;
gr.OnDblClick:=GroupBox1DblClick;
for i:=0 to self.ComponentCount -1 do
if self.Components is Tgroupbox then
begin
with tlabel.Create(self)do
try
top:=10;
left:=10;
caption:='我是一个LABEL';
Visible:=true;
Parent:=Tgroupbox(self.Components);
except
//
end;
showmessage(Components.Name);
end;
end;

procedure TForm1.GroupBox1DblClick(Sender: TObject);
begin
showmessage(tgroupbox(sender).Name);
end;
 
非常感谢boy2002,真的非常感谢。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
928
SUNSTONE的Delphi笔记
S
后退
顶部