System.InitProc
Delphi
InitProc: Pointer; { Last installed initialization procedure }
C++
extern DELPHI_PACKAGE void *InitProc;
プロパティ
| 種類 | 可視性 | ソース | ユニット | 親 |
|---|---|---|---|---|
| variable | public | System.pas System.hpp |
System | System |
説明
InitProc は、最後にインストールされる初期化プロシージャです。
InitProc に値を割り当てると、アプリケーションの起動時に実行したいプロシージャを指定することができます。InitProc の値は、パラメータなしのプロシージャです。たとえば、
- Delphi では、割り当てはユニットの初期化セクションで行われます。
procedure MyInitProcedure; ... initialization InitProc := @MyInitProcedure; end.
- C++ では、割り当てはプロジェクト ソース ファイル内で最も簡単に行われます。
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
try
{
// 呼び出しは、Application->Initialize(); の前でなければなりません。
System.InitProc = MyInitProcedure;
Application->Initialize();
Application->CreateForm(__classid(TForm1), &Form1);
Application->Run();
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
catch (...)
{
try
{
throw Exception("");
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
}
return 0;
}
InitProc 変数に割り当てることのできる初期化プロシージャは、1 つだけです。アプリケーションで複数の初期化プロシージャを定義している場合、InitProc への最後の割り当てのみが実行されます。他の初期化プロシージャを実行させるには、それらのプロシージャ群を「連鎖」させる必要があります。これを行うには、InitProc の新しい値から、その前の割り当て値を呼び出すようにします。