自己定义个类,如下 TBtnEdit=class(TEdit) private FButton:TButton; public constructor Create(AOwner:TComponent);override; destructor Destroy;override end; 然后实现的时候如下 constructor TBtnEdit.Create(AOwner: TComponent); begin inherited; FButton:=TButton.Create(Self); with FButton do begin Left:=Self.Left+Self.Width; Top:=Self.Top; Height:=Self.Height; Caption:='...'; Parent:=Self; end; end;destructor TBtnEdit.Destroy; begin FButton.Free; inherited; end; 然后定义了新类必须注册,在初始化部分进行注册,如下 initialization RegisterClass(TBtnEdit); 最后调用 procedure TForm1.Button1Click(Sender: TObject); var vBtnEdit:TBtnEdit; begin vBtnEdit:=TBtnEdit.Create(Self); with vBtnEdit do begin //其他操作 Parent:=Self; end; end;
控制好位置就可以了,但create的时候一定要关联好TButton的OnClick事件,其实没有什么难的,要将TButton的OnClick事件放处理,不然你点击按钮没有反映的
TBtnEdit=class(TEdit)
private
FButton:TButton;
public
constructor Create(AOwner:TComponent);override;
destructor Destroy;override
end;
然后实现的时候如下
constructor TBtnEdit.Create(AOwner: TComponent);
begin
inherited;
FButton:=TButton.Create(Self);
with FButton do
begin
Left:=Self.Left+Self.Width;
Top:=Self.Top;
Height:=Self.Height;
Caption:='...';
Parent:=Self;
end;
end;destructor TBtnEdit.Destroy;
begin
FButton.Free;
inherited;
end;
然后定义了新类必须注册,在初始化部分进行注册,如下
initialization
RegisterClass(TBtnEdit);
最后调用
procedure TForm1.Button1Click(Sender: TObject);
var
vBtnEdit:TBtnEdit;
begin
vBtnEdit:=TBtnEdit.Create(Self);
with vBtnEdit do
begin
//其他操作
Parent:=Self;
end;
end;
[email protected]
谢谢啦