フォームのタイトルバーの左端にあるアイコンをなくすには?

解決


虫歯の日  2007-06-03 23:14:38  No: 26481

MainFormではない、Aboutボックスのようなサブフォームにおいて、
タイトルバーのキャプションの左にあるアイコンをなくして、かつ、
右端には終了ボタン[×]のみを表示したいのですが可能でしょうか?


みんみん  2007-06-04 07:25:34  No: 26482

設計時に対象フォームのBorderStyle をbsDialogにします。

アイコンは表示されなくなり、タイトルバーのボタンも
[×]だけの表示になりますが、サイズ変更は不可になります。


虫歯の日  2007-06-04 09:15:15  No: 26483

bsSizeable, bsSingle, bsNone を試してみて、
他はだめだと思って試していなかったのですが、
bsDialog でできたとは。調査不足でした。すいません。
ありがとうございます。

できれば、アイコンなし、[×]だけ、サイズ変更可能な
フォームにしたいのですが、タイトルバーが小さくなってしまう
bsSizeToolWin 以外で、そのようにする方法はあるのでしょうか?


みんみん  2007-06-05 09:03:59  No: 26484

環境により動作するかは不明ですが
type
  TForm1 = class(TForm)
        ・
        ・
        ・
protected
    procedure CreateParams(var params :TCreateParams);override;

end;
---------------------------------------------------------------
procedure TForm1.FormCreate(Sender: TObject);
begin
  BordDerStyle :=bsDialog;
  //システムメニューにサイズ変更を挿入
  InsertMenu(GetSystemMenu(Handle,false),1,
             MF_STRING or MF_BYPOSITION,
             SC_SIZE,'サイズ変更(&S)');
end;

//フォームにサイズ変更可能な境界を持たせる
procedure TForm1.CreateParams(var params: TCreateParams);
begin
  inherited;

  params.Style :=params.Style or WS_THICKFRAME;
end;


みんみん  2007-06-05 09:26:24  No: 26485

すいません、タイプミスがありました。

>>BordDerStyle :=bsDialog;
         ↓
  BorderStyle :=bsDialog;

です。


虫歯の日  2007-06-05 12:03:49  No: 26486

すごいです。できました。(WinXP SP2, Delphi 7)
みんみん さん、どうもありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加