2012-12-08 8 views
9

タイトルバーなしでDelphiフォームを作成する方法を知っている人はいますか?私はいくつかのリンク/ヒントを見てきましたが、正確には私が望むものではなく、自分ではできませんでした。フォームからタイトルバーを削除する方法

は、これは私が達成しようとしているものです:

enter image description here

答えて

15

まず、オブジェクトインスペクタでbsNoneBorderStyleを設定し、設計時にbsNoneBorderStyleを設定します。そして、そのように手続き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; 
+0

Windows XPでも正しく動作しますか? [+1] – TLama

+0

@tlama:覚えていないし、XPをテストする必要はありませんが、問題はないはずです。 (それはガラスの代わりに青い太い枠線を得ませんか?) –

+0

ありがとうございましたAndreas、境界線のサイズを変更する方法はありますか? –

2

+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;

注境界枠内引き込まれます。

関連する問題