2012-12-08 23 views
9

有誰知道如何創建沒有標題欄的Delphi窗體?我看過一些鏈接/提示,但它不完全是我想要的,我自己也做不到。如何從窗體中刪除標題欄

這就是我想實現:在Object Inspector中

回答

15

首先

enter image description here

+0

它在Windows XP上的外觀和行爲是否正確? [+1] – TLama

+0

@TLama:不記得也沒有XP可以測試,但我認爲不應該有任何問題。 (它不是得到一個藍色的厚邊框,而不是玻璃的邊框?) –

+0

謝謝安德烈亞斯,有沒有辦法修改邊框尺寸? –

2

設置BorderStylebsNone,在設計時設置BorderStylebsNone。然後申報程序CreateParams像這樣:

type 
    TForm1 = class(TForm) 
    private 
    protected 
    procedure CreateParams(var Params: TCreateParams); override; // ADD THIS LINE! 
    { Private declarations } 
    public 
    { Public declarations } 
    end; 

,並實現它就像

procedure TForm1.CreateParams(var Params: TCreateParams); 
begin 
    inherited; 
    Params.Style := Params.Style or WS_THICKFRAME; 
end; 
+5

僅此一項是不夠的。 –

+0

@AndreasRejbrand爲什麼不呢? –

+0

將結果與OP提供的圖像進行比較。整個玻璃邊界(和陰影)都消失了。 –

1

爲了更好的邊框樣式,您可以添加WS_BORDER標誌。

像這樣:

procedure TForm1.CreateParams(var Params: TCreateParams); 
 
begin 
 
    inherited; 
 
    Params.Style := Params.Style or WS_BORDER or WS_THICKFRAME; 
 
end;

注比軟線繪製的邊框內。