0

我想创建一个包含 TImage32 的自定义 TPanel。在我手动调整父控件的大小之前,图像不会与父控件对齐。之后它将保持很好的对齐。
为什么?

TYPE
  TDisplay1= class(TPanel)
   private
    Ready: Boolean;
    RightPnl       : TPanel;
    ShowA          : TSpeedButton;
    Display        : TImage32;
   protected
    procedure Resize; override;
   public
    constructor Create(AOwner: TComponent); override;
    destructor  Destroy; override;
  end;

IMPLEMENTATION



procedure TDisplay1.Resize;    <-------- the culprit was here as suggested by Vahid
begin
 inherited;
 if Ready
 then Display.SetupBitmap(TRUE, clYellow32);
end;

更新:
我正在使用另一种加载控件的方法来解决 oa 解决方案。如果我成功了,我会告诉你的。

Update2:
Vahid 的答案更好。谢谢瓦希德。

4

1 回答 1

3

将此代码添加到您的面板:

...
protected
   procedure Paint; override;
...
procedure TDisplay1.Paint;
begin
 inherited;
 if Ready then Display.SetupBitmap(TRUE, clYellow32);
end;
于 2012-08-08T10:28:25.950 回答