P
pnljh
Unregistered / Unconfirmed
GUEST, unregistred user!
想做一个这样的控件,在一个DBEdit的右边加入一个按钮(我知道有现成的,但想自己做)
为何在WMSize中加入设置大小的代码,按钮就不见了(创建时也不见)?不加就行,但不加的话
在dBEdit1调整大小时,按钮不能跟着改变大小,怎么回事?
主要代码如下:
其中,
fEditButton:TButton;
TDBEdit1 = class(TDBEdit)
有如下代码:
constructor TDBEdit1.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
if Assigned(fEditButton) then Exit;
fEditButton := TButton.Create(self);
fEditButton.Parent := Self;
fEditButton.Caption := '...';
setEditButtonPos(Width,height);
end;
procedure TDBEdit1.WMSize(var Message: TWMSize);
begin
setEditButtonPos(Width,height);//删除此句,则按钮出现了。
end;
procedure TDBEdit1.setEditButtonPos(w:Integer;h:integer);
begin
fEditButton.SetBounds(Left + W - 29,0,25,h-2)
end;
为何在WMSize中加入设置大小的代码,按钮就不见了(创建时也不见)?不加就行,但不加的话
在dBEdit1调整大小时,按钮不能跟着改变大小,怎么回事?
主要代码如下:
其中,
fEditButton:TButton;
TDBEdit1 = class(TDBEdit)
有如下代码:
constructor TDBEdit1.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
if Assigned(fEditButton) then Exit;
fEditButton := TButton.Create(self);
fEditButton.Parent := Self;
fEditButton.Caption := '...';
setEditButtonPos(Width,height);
end;
procedure TDBEdit1.WMSize(var Message: TWMSize);
begin
setEditButtonPos(Width,height);//删除此句,则按钮出现了。
end;
procedure TDBEdit1.setEditButtonPos(w:Integer;h:integer);
begin
fEditButton.SetBounds(Left + W - 29,0,25,h-2)
end;