我想创建一个组件,但我对Align的工作方式不满意,所以我想创建自己的属性,以完全不同的方式重新定位组件。 但我不知道在哪里可以使用它 - 它应该在哪里调用?
答案 0 :(得分:2)
一个快速访问将覆盖SetBounds,以确保它的调用你必须设置一个Alignment,然后alNone
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;
答案 1 :(得分:1)
前Borland开发人员Steve Trefethen的这个article展示了如何使用alCustom
。