我想创建一个组件,但我对 Align 的工作方式不满意,所以我想创建自己的属性以完全不同的方式重新定位组件。但是我不确定在哪里使用它-应该在哪里调用它?
问问题
1293 次
2 回答
2
一种快速访问是覆盖 SetBounds,以确保调用它,您必须设置除 alNone 之外的 Alignment
type
TMyButton=Class(Tbutton)
procedure SetBounds(ALeft, ATop, AWidth, AHeight: Integer); override;
End;
//..............
procedure TForm3.Button1Click(Sender: TObject);
begin
With TMyButton.Create(self) do
begin
Parent := self;
Width := 200;
top := 100;
Height := 100;
align := alCustom; // was alRight thanks to David Heffernan
end;
end;
{ TMyButton }
procedure TMyButton.SetBounds(ALeft, ATop, AWidth, AHeight: Integer);
begin
if Assigned(parent) then
begin // .. just e.g.
ALeft := Parent.Width - Width -100 ;
ATop := 100;
AHeight := Parent.Height - Atop - 100 ;
end;
inherited;
end;
于 2012-11-03T13:37:40.983 回答
1
这篇由前 Borland 开发人员 Steve Trefethen 撰写的文章展示了如何使用alCustom
.
于 2012-11-07T13:03:13.067 回答