掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
最小化の状態で起動 (ID:28855)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
無駄にFormを消費してよいならこんなのはどうでしょう? Vista用フォームの応用です。 Project1.dpr (hidden) program Project1; uses Forms, Unit1 in 'Unit1.pas' {Form1}, Unit2 in 'Unit2.pas' {Form2}; {$R *.res} begin Application.Initialize; Application.ShowMainForm:=False; Application.CreateForm(TForm1, Form1); Application.Run; end. Unit1.pas (hidden) unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Unit2; type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); private { Private 宣言 } public { Public 宣言 } procedure Unit2Close(Sender: TObject; var Action: TCloseAction); end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); var Form2:TForm2; begin Form2:=TForm2.Create(self); Form2.OnClose:=Unit2Close; Form2.Show; end; procedure TForm1.Unit2Close(Sender: TObject; var Action: TCloseAction); begin Close; end; end. Unit2.pas (Main Form) unit Unit2; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm2 = class(TForm) procedure FormCreate(Sender: TObject); private { Private 宣言 } public { Public 宣言 } protected procedure CreateParams(var Params: TCreateParams); override; procedure WMSyscommand(var msg: TWmSysCommand); message WM_SYSCOMMAND; procedure WMActivate(var msg: TWMActivate); message WM_ACTIVATE; end; var Form2: TForm2; implementation {$R *.dfm} procedure TForm2.CreateParams(var Params: TCreateParams); begin inherited CreateParams(Params); Params.ExStyle := Params.ExStyle and not WS_EX_TOOLWINDOW or WS_EX_APPWINDOW; end; procedure TForm2.WMActivate(var msg: TWMActivate); begin if (msg.Active = WA_ACTIVE) and not IsWindowEnabled(Handle) then begin SetActiveWindow(Application.Handle); msg.Result := 0; end else inherited; end; procedure TForm2.WMSyscommand(var msg: TWmSysCommand); begin case (msg.CmdType and $FFF0) of SC_MINIMIZE: begin ShowWindow(Handle, SW_MINIMIZE); msg.Result := 0; end; SC_RESTORE: begin ShowWindow(Handle, SW_RESTORE); msg.Result := 0; end; else inherited; end; end; procedure TForm2.FormCreate(Sender: TObject); begin ShowWindow(Application.Handle, SW_HIDE); SetWindowLong(Application.Handle, GWL_EXSTYLE, GetWindowLong(Application.Handle, GWL_EXSTYLE) and not WS_EX_APPWINDOW or WS_EX_TOOLWINDOW); ShowWindow(Application.Handle, SW_SHOW); WindowState:=wsMinimized; end; end.
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.