お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





FDelphi FAQ
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル

"最小化のアニメーション表示"



 Delphiで作ったソフトのウィンドウに最小化時のアニメーション動作を
させる方法です。コンパネのサウンドで設定した該当サウンド設定も
ちゃんと機能するようになりますし、最小化or最大化起動も対応します。

 追加メソッドは2つ。FormCreateは普通にTFormのOnCreateで追加
して下さい。WMSysCommandは手書きでゴリゴリ付け足します。



--------------------------------------------------------------

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private 宣言 }
    procedure WMSysCommand(var Msg: TWMSysCommand); message WM_SYSCOMMAND;
  public
    { Public 宣言 }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.WMSysCommand(var Msg: TWMSysCommand);
begin
  if Msg.CmdType = SC_MINIMIZE then DefaultHandler(Msg)
     else inherited;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  AppHandle: THandle;
  Info: TStartUpInfo;
begin
  AppHandle := GetWindowLong(Self.Handle, GWL_HWNDPARENT);
  SetWindowLong(Self.Handle, GWL_HWNDPARENT, 0);
  SetWindowLong(AppHandle, GWL_HWNDPARENT, Self.Handle);

  GetStartupInfo(info);
  if info.wShowWindow = SW_SHOWMINNOACTIVE then begin
    WindowState:= wsNormal;
    CmdShow:= SW_SHOWNORMAL;
  end;
end;


**-*--*----* ----* ---------*   -------------*    -------------------*
*** tetsu@din.or.jp           O   R                    s  u .
** VZX00324@nifty.ne.jp               I        T     t        ..   . :
* http://www.din.or.jp/~tetsu/apps/      I        e             . .


Original document by 折井 哲        氏 ID:(VZX00324)


ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。

Copyright 1996-2002 Delphi Users' Forum