コンポーネントを作成したいのですが、Align の動作に満足できないため、独自のプロパティを作成してコンポーネントをまったく別の方法で再配置したいと考えています。しかし、どこに接続すればよいかわかりません。どこで呼び出す必要がありますか?
1293 次
2 に答える
2
高速アクセスの1つは、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 に答える