大哥大姐,兄弟姐妹,帮忙看看,不胜感激。自写组件,设计时能调整大小,运行时比例失调(50分)

  • 主题发起人 主题发起人 ff_ff
  • 开始时间 开始时间
F

ff_ff

Unregistered / Unconfirmed
GUEST, unregistred user!
一个简单的组件,把TEdit和TSpeedButton结合起来。
设计时,俩个都调到某中大小。运行时Tedit大小不变,只有TspeedButton大小按设计时
变化。
构造器和消息相应代码:
constructor TButtonEdit.Create(AOwner: TComponent);
begin
inherited;
FEdit := TEdit.Create(self);
FEdit.Parent:=self;
FEdit.Height:= 21;
FSpeedButton:=TSpeedButton.Create(self);
FSpeedButton.Left:=FEdit.Width;
FSpeedButton.Height:=19;
FSpeedButton.Width :=19;
FSpeedButton.Caption:='...';
FSpeedButton.Parent:=self;
Width:=FEdit.Width+FSpeedButton.Width;
Height:= FSpeedButton.Height;
end;
procedure TButtonEdit.WMSize(var Message: TWMSize);
begin
inherited;
FEdit.Width:=Message.Width-FSpeedButton.Width;
FSpeedButton.Left:=FEdit.Width;
FEdit.Height:=Message.Height;
FSpeedButton.Height:=Message.Height;
end;

end.
大哥大姐,兄弟姐妹,帮忙看看,不胜感激。
 
自已提前了。
 
刚好你选Tedit就错误了,你知道Tedit不能随意调整高度的,他与font的属性有关。
如果你采用Tbutton就可以。
 
楼上说的对,你如果把Tedit换成Tmemo试试就可以了。
 
有这么简单吗?
如果非要用edit呢?
 
to dcsdcs :
Tedit不能随意调整大小,与font属性有关?
为什么?
 
好冷清啊
 
constructor TButtonEdit.Create(AOwner: TComponent);
begin
AutoSize := false;
...
end
试试
 
FEdit := TEdit.Create(self);
FEdit.AutoSize:=false;
 
多人接受答案了。
 
后退
顶部