フォームのBorderStyleでbsNoneに設定すればタイトルバーは表示されないのですが、実行中にフォームのサイズを変更した場合はどのように設定すればいいのでしょうか?
//フォームにボタンを1つ置いて
procedure TForm1.FormCreate(Sender: TObject);
begin
Borderstyle :=bsnone;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ClientWidth :=ClientWidth+10;
ClientHeight :=ClientHeight+10;
end;
こういうことでしょうか?
それとも普通のウィンドウのように境界をドラッグしてサイズ変更をしたいということでしょうか?
すいません。
質問の意味がわかっていなかったかもしれません。
表示→ユニットの表示から
プロジェクトファイルを開いて、
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.
これでタイトルバーが非表示になるはずです。
このような感じで如何でしょうか?
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;
みんみんさん、zebraさん
ありがとうございます。
希望通りの動きになりました。
ツイート | ![]() |