タイトルバーを非表示にするには?

解決


ぱぱ初心者  2006-08-25 12:18:04  No: 22994  IP: 192.*.*.*

フォームのBorderStyleでbsNoneに設定すればタイトルバーは表示されないのですが、実行中にフォームのサイズを変更した場合はどのように設定すればいいのでしょうか?

編集 削除
みんみん  2006-08-27 02:58:43  No: 22995  IP: 192.*.*.*

//フォームにボタンを1つ置いて
procedure TForm1.FormCreate(Sender: TObject);
begin
   Borderstyle :=bsnone;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ClientWidth :=ClientWidth+10;
  ClientHeight :=ClientHeight+10;
end;
こういうことでしょうか?
それとも普通のウィンドウのように境界をドラッグしてサイズ変更をしたいということでしょうか?

編集 削除
みんみん  2006-08-28 22:08:29  No: 22996  IP: 192.*.*.*

すいません。
質問の意味がわかっていなかったかもしれません。
表示→ユニットの表示から
プロジェクトファイルを開いて、

program test;

uses
  Forms,windows,  //windows を追加
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  SetWindowLong(Application.Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW); 
    //上の1行を追加  タスクバーを非表示
  Application.Run;
end.

これでタイトルバーが非表示になるはずです。

編集 削除
zebra  2006-08-29 02:34:58  No: 22997  IP: 192.*.*.*

このような感じで如何でしょうか?
BorderStyleをbsNoneにしたうえで以下のメソッドを追加すれば、
ご希望通りの動作になると思います。
あとは、パラメータを適当にいじってみて下さい。

type
  TForm1 = class(TForm)
  private
    { Private 宣言 }
  protected
    procedure CreateParams(var Params: TCreateParams); override;
  public
    { Public 宣言 }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

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

編集 削除
ぱぱ初心者  2006-08-29 08:43:52  No: 22998  IP: 192.*.*.*

みんみんさん、zebraさん
ありがとうございます。
希望通りの動きになりました。

編集 削除