怎样编写一个集成了多个控件的自定义组件?给点思路! 用一个Panel作为父窗口,在Create事件中动态生成各个需要的控件,并且按照自己的排列顺序放好。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 把你想要作上去的组件都作为属性在create构造函数中创建,并指定位置即可。 netlib(河外孤星):能给一个简单的框架吗?谢谢! unit TestEdit; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TTestEdit = class(TEdit) private FButton: TButton; protected procedure ButtonClick(Sender: TObject); public constructor Create( AOwner: TComponent ); override; published end; procedure Register; implementation procedure TTestEdit.ButtonClick(Sender: TObject);begin Text := DateToStr(Now);end; constructor TTestEdit.Create( AOwner: TComponent );begin inherited Create(AOwner); Text := DateToStr(Now); FButton := TButton.Create( self ); FButton.Visible := true; FButton.Parent := self; FButton.Height := Height-2; FButton.Width := Height-2; FButton.Left := Width - Height - 2; FButton.top := top; FButton.OnClick := ButtonClick;end; procedure Register;begin RegisterComponents('Standard', [TTestEdit]);end; end. unit panel1;interfaceuses Windows, Messages, SysUtils, Classes, Controls, ExtCtrls;type tpanel1 = class(TPanel) private Fbutton: Tbutton; procedure Setbutton(const Value: Tbutton); { Private declarations } protected { Protected declarations } public { Public declarations } constructor Create(AOwner: TComponent); override; destructor Destroy; override; published { Published declarations } property button:Tbutton read Fbutton write Setbutton; end;procedure Register;implementationprocedure Register;begin RegisterComponents('Samples', [tpanel1]);end;{ tpanel1 }constructor tpanel1.Create(AOwner: TComponent);begin inherited; FButton:=TButton.create(self);end;destructor tpanel1.Destroy;begin Fbutton.free; inherited;end;procedure tpanel1.Setbutton(const Value: Tbutton);begin Fbutton := Value;end;end. 首先谢谢二位!但我自己换了一个DBGrid,再安装此组件后,测试时单击按钮却没事件发生?请大家再帮忙看看!unit TestGrid;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, DBGrids, StdCtrls;type TTestGrid = class(TDBGrid) private FButton: TButton; protected procedure ButtonClick(Sender: TObject); public constructor Create( AOwner: TComponent ); override; published end;procedure Register;implementationprocedure TTestGrid.ButtonClick(Sender: TObject);begin ShowMessage('OK!');end;constructor TTestGrid.Create( AOwner: TComponent );begin inherited Create(AOwner); FButton := TButton.Create( self ); FButton.Visible := true; FButton.Parent := self; FButton.Height := 18; FButton.Width := 12; FButton.Left := Left; FButton.top := top; FButton.Caption:='..'; FButton.BringToFront; FButton.OnClick := ButtonClick;end;procedure Register;begin RegisterComponents('Standard', [TTestGrid]);end;end. SMapiSendMail发送的问题 为什么dbedit在运行以后不能往里面填写信息 请问哪有《DELPHI5.x分布式多层应用系统编》的附书源码下载? ——不是书,是源码! 如何删除的问题,在线等待 怎样学习OO的思想? Delphi 输出XML... Help,关于ADO+Sql Server事务问题? 大虾们请出手 线程何时执行? 我在WIN98下为什么不能调DCOM的东西,不是说也可以么,?? 大家请来帮帮我 帮我解决我的问题 关于dbgrid记录的背景色的问题!
在create构造函数中创建,并指定位置即可。
能给一个简单的框架吗?谢谢!
Windows, Messages, SysUtils, Classes, Controls, ExtCtrls;type
tpanel1 = class(TPanel)
private
Fbutton: Tbutton;
procedure Setbutton(const Value: Tbutton);
{ Private declarations }
protected
{ Protected declarations }
public
{ Public declarations }
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
{ Published declarations }
property button:Tbutton read Fbutton write Setbutton;
end;procedure Register;implementationprocedure Register;
begin
RegisterComponents('Samples', [tpanel1]);
end;{ tpanel1 }constructor tpanel1.Create(AOwner: TComponent);
begin
inherited;
FButton:=TButton.create(self);
end;destructor tpanel1.Destroy;
begin
Fbutton.free;
inherited;
end;procedure tpanel1.Setbutton(const Value: Tbutton);
begin
Fbutton := Value;
end;end.
但我自己换了一个DBGrid,再安装此组件后,测试时单击按钮却没事件发生?请大家再帮忙看看!unit TestGrid;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls,
Forms, Dialogs, DBGrids, StdCtrls;type TTestGrid = class(TDBGrid) private FButton: TButton; protected procedure ButtonClick(Sender: TObject); public constructor Create( AOwner: TComponent ); override; published end;procedure Register;
implementationprocedure TTestGrid.ButtonClick(Sender: TObject);begin
ShowMessage('OK!');
end;
constructor TTestGrid.Create( AOwner: TComponent );begin inherited Create(AOwner);
FButton := TButton.Create( self );
FButton.Visible := true;
FButton.Parent := self;
FButton.Height := 18;
FButton.Width := 12;
FButton.Left := Left;
FButton.top := top;
FButton.Caption:='..';
FButton.BringToFront;
FButton.OnClick := ButtonClick;
end;procedure Register;
begin RegisterComponents('Standard', [TTestGrid]);end;end.