Delphiメモ

No020:TApplicationの自分的まとめ

※移植してて思ったけど、これ殆ど役にたたねぇ・・・。

−プロパティ−

・Active:Boolean
アプリケーションがアクティブかどうか。
言うまでもなくリードオンリー。

・AutoDragDocking:Boolean
ドラッグされたウィンドウが自動的にドッキングされるかどうか。

・ExeName:String
アプリケーションの実行ファイルのフルパス。あまりにも有名。
やっぱりリードオンリー。
ExtractFilePathとよく組み合わせて使うことが多い。

・Handle:HWND
アプリケーションのメインウインドウのハンドル。

・HintColor:TColor
ヒントボックスのカラーを設定する。
TApplicationはpublishedなプロパティを持たないため、
設計時にヒントボックスのカラーを設定することは出来ない。

・HintHidePause:Integer
ヒントを非表示にするまでの時間。
なお、時間はミリ秒(msec)単位で設定する。
デフォルトは2500msec。

・HintPause:Integer
ヒントを表示するまでの時間。
やはり時間はミリ秒(msec)単位で設定する。
デフォルトは500msec。

・Icon:TIcon
アプリケーションを表すアイコン。そのまんま。
設計時はプロジェクト→オプションで指定されたファイルが割り当てられている。
更に実行時にもアイコンを割り当てることが可能。

・MainForm:TForm
アプリケーションのメインフォーム。リードオンリー。
変更するには設計時にプロジェクトオプションで変更するしかない。
なお、メインフォームを閉じるとアプリケーションが終了する。

・ShowHint:Boolean
ヒントを表示するかどうか。
アプリケーション全体で使用するかどうかが設定される。
Falseにすると、他のコントロールのShowHintの設定いかんに問わず、
全てのヒントが使用不能になる。

・ShowMainForm:Boolean
起動時にメインフォームを表示するかどうか。
表示したくない場合はRunメソッドよりも前にFalseと記述する必要がある。
常駐アプリなどを作る時に必要になってくる。

・Terminated:Boolean
アプリケーションが終了中であるかどうか。
Terminateメソッドとごっちゃにしないこと。
コード補完してる時は選択ミスをしないように。
終了処理が呼び出された後に不要な処理を実行しないように、
ProcessMessagesメソッドを呼び出すときに使うらしい。
WM_QUITを受信すると、ProcessMessagesはTerminatedをTrueに設定する。
重いループ処理などを行う場合などに用いられる。

・Title:String
アプリケーションのタイトル。タスクバーに表示されるのは、
メインフォームのキャプションではなくこっち。
設計時に設定するにはプロジェクトオプションからどうぞ。

−メソッド−

・ActivateHint(CursorPos:TPoint)
CursorPosに指定した座標にヒントを表示する。

・BringToFront
直前にアクティブだったアプリケーションを、
それ以外のすべてのアプリケーションの前に移動する。

・CreateForm(FormClass: TFormClass; var Reference)
実行時にフォームを作成する。要するにフォームの動的生成。
ちなみに新しいフォームのオーナーはApplicationオブジェクト。

・MessageBox(const Text,Caption: PChar; Flags: Longint): Integer

メッセージが1つ、ボタンが1つ以上の汎用ダイアログボックスを表示する。
Textはユーザーへのメッセージで、長いと自動でラップされる。
Captionはダイアログボックスのタイトル。
Flagsは表示ボタン及び動作を指定する。
指定できるのは以下の値(字面の通りの動作なので説明しない)
MB_ABORTRETRYIGNORE
MB_OK
MB_OKCANCEL
MB_RETRYCANCEL
MB_YESNO
MB_YESNOCANCEL
なお、ダイアログボックスを表示できない時は0を返すが、
それ以外の場合は以下の値を返り値として返す。
(やっぱり字面のまんまなので説明しない)
IDOK
IDCANCEL
IDABORT
IDRETRY
IDIGNORE
IDYES
IDNO

・ProcessMessages
アプリケーションがメッセージキューを処理できるように、
その実行を一時的に停止する。
ネタは既出なので省略。

・Terminate
アプリケーションを終了する。ApplicationをFreeするより的確に終了できる。
メインフォーム以外のフォームなどから終了する際に用いる。

−イベント−


Applicationのイベントを使うなら、
ApplicationEventsコンポーネントの使用を推奨。
IDEでイベントハンドラを割り当てられるため、楽です。

・OnActivate:TNotifyEvent
アプリケーションがアクティブ化すると発生。
アクティブ化した時に処理したい時に使う。

・OnDeactivate:TNotifyEvent
OnActivateの逆。非アクティブ化する直前に発生。

・OnIdle:TIdleEvent
アプリケーションのアイドル時に発生。
DoneをFalseに設定すると連続で呼び出せるため、
とんでもない速度での処理が可能になるが、
CPUを気持ち悪いくらいに占拠するのでご注意。

・OnMessage:TMessageEvent
アプリケーションがWindowsメッセージを受信したときに発生。
秒間数千のメッセージがすっ飛んでくるところを全てトラップするので、
迂闊な記述はパフォーマンスダウンを招くのでご注意。
TApplicationで宣言されていないメッセージに応答する時にどうぞ。
※APIのSendMessageによって送られたメッセージはシカトするのでご注意。

・OnMinimize:TNotifyEvent
アプリケーションの最小化時に発生。

・OnRestore:TNotifyEvent
最小化したアプリケーションが元に戻った時に発生。

・OnSettingChange:TSettingChangeEvent
システム設定が変更されたこをWindowsが通知したときに発生。
確かDelphi6あたりから実装されたはず。

・OnShortCut:TShortCutEvent
ユーザーがキーを押したときに(OnKeyDownよりも前に)発生。
キーストロークに応答する場合はHandleをTrueへ設定する。
こうするとフォームもしくはコントロールが処理する前に割り込める。

トップに戻る

関連ページ