掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
メインフォームの非表示について (ID:31120)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
タスクバーの事をタスクトレイと言っている気がするので Application.ShowMainForm := False; だとフォームが表示されません、 フォームがないとタスクバーには表示されませんので procedure TForm4.FormCreate(Sender: TObject); begin Application.ShowMainForm := False; WindowState := wsMinimized; Application.ShowMainForm := True; end; としてフォーム非表示 -> 最小化 -> フォーム表示とする事により 起動時の最初化アニメーションがされずにいきなりタスクバーに アイコンが表示されます しかしタスクバーをクリック等すると元にもどってしまうので これを防ぎたい場合には以下のようにして下さい FOldWndProc: TFNWndProc; function NewWndProc(hWnd: HWND; Msg: UINT;WParam: wPARAM; lParam: LPARAM): LRESULT; stdcall; implementation {$R *.dfm} function NewWndProc(hWnd: HWND; Msg: UINT;wParam: WPARAM; lParam: LPARAM): LRESULT; begin if (Msg = WM_SYSCOMMAND) and (wParam = SC_RESTORE) then begin Result := 0; end else begin Result := CallWindowProc(FOldWndProc, hWnd, Msg, wParam, lParam); end; end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin SetWindowLong(Application.Handle,GWL_WNDPROC, Longint(FOldWndProc)); end; procedure TForm1.FormCreate(Sender: TObject); begin Application.ShowMainForm := False; WindowState := wsMinimized; Application.ShowMainForm := True; FOldWndProc := TFNWndProc(SetWindowLong(Application.Handle,GWL_WNDPROC, Longint(@NewWndProc))); end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.