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 の新しい値から、その前の割り当て値を呼び出すようにします。