2012-08-07 37 views
0

我想創建一個具有TImage32的自定義TPanel。 直到我手動調整父級控件的大小時,圖像纔會與父級對齊。之後,它將保持良好對齊。
爲什麼?TImage將不會與父項對齊

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; 

更新:
我的工作Ø用另一種方式來加載控制的解決方案。如果我成功了,我會告訴你。

Update2:
Vahid answer is better。謝謝Vahid。

+2

你爲什麼在其構造設置面板的家長嗎?這並非如此。讓VCL .dfm流處理那個。 – 2012-08-07 20:45:08

+0

當我嘗試複製這個時,我看不到你報告的行爲。我希望看到一個完整的程序來說明問題。 – 2012-08-07 20:52:49

+0

如果我沒有設置父項,控件將不會在運行時出現在我的表單上!!!!!!! – Ampere 2012-08-07 21:36:04

回答

3

將此代碼添加到您的面板:

... 
protected 
    procedure Paint; override; 
... 
procedure TDisplay1.Paint; 
begin 
inherited; 
if Ready then Display.SetupBitmap(TRUE, clYellow32); 
end;