1st_Thin_INF_Framework_組み込みガイド_改訂版.txt                           Rev.0 2025.02.27(追記) 編集時の表示倍率のご注意  この文書は INF_Framework の新しいバリエーションである Thin_INF_Framework の組み込みガイドです。  同梱の2つの[フォーム+イベント処理]を例にして解説します。  ■ NO_EZW.wfx  最も基本的な構成のフォームです。  INFtxtCommon と INFcmdCommon は必須のオブジェクトです。   もしも、これらのオブジェクトが存在しない場合には INF_Framework から警告情報が表示されます。   警告情報が表示されても、プログラムが止まることはありません。   必須のオブジェクトは簡単に自作出来ます。   ・テキストボックスのオブジェクト名が INFtxtCommon であれば内容は何でもOKです。   ・コマンドボタンのオブジェクト名が  INFcmdCommon であれば内容は何でもOKです。  [標準のコマンドボタン]は強く推奨するオブジェクトです。   INF_Framework を組み込んだ全てのフォームのヘッダ部左上に配置すると外見上の統一感が生まれます。   また、INF_Framework が組み込まれているか否かの識別にも役立ちます。  フォーム   ├ ファミリ   ├ ワークスペース   │ ├ INFtxtCommon ← 必須オブジェクト ワークスペースに配置してください   │ ├ INFcmdCommon ← 必須オブジェクト ワークスペースに配置してください   │ └ FSCtxtPaletteColorName         ┐   │   ├ FSCtxtPaletteColorName入力支援ボタン ├─ オプションのオブジェクト   │   └ FSClblPaletteColorName       ┘   ├ フォーム操作バー   ├ フォームヘッダ部   │ ├ a   │ ├ aA   │ ├ aB   │ ├ aC   │ ├ aD   │ ├ aE   │ ├ aF   │ ├ aG   │ ├ aH   │ ├ EZWcmdズームイン   ┐   │ ├ EZWcmdズームアウト  │   │ ├ EZWtxtMagnification  ├─ 標準のコマンドボタン ※ヘッダ部左上に配置することを強く推奨します    │ ├ INFcmdWhoAreYou    │   │ ├ HDLVARcmdWhoAreYou  ┘   │ ├ cmdAlt_I_ズームイン  ┐ アクセスキー[Alt + I]とアクセスキー[Alt + I]用です。   │ └ cmdAlt_O_ズームアウト ┘   └ フォーム明細部     ├ 行セレクタ     ├ tA     ├ tB     ├ tC     ├ tD     ├ tE     ├ tF     ├ tG     └ tH  ■ NO_EZW_Plus.wfx  [モダン⇔クラシック]機能を使えるように次の3つのオブジェクトを追加したフォームです。   ファミリ   :famModernUI   コマンドボタン:ONEcmdUI変換   ラベル    :lblFlatButtonBorder_1   さらに、リピート実行用ファミリ:famRecordUpDown と スピンボタン用ファミリ:famSpinButton を追加しました。  ファミリのオブジェクトは簡単に自作出来ます。ファミリオブジェクトに順番はありません。   ・ファミリのオブジェクト名が famRecordUpDown であれば内容は何でもOKです   ・ファミリのオブジェクト名が famSpinButton  であれば内容は何でもOKです   ・ファミリのオブジェクト名が famModernUI   であれば内容は何でもOKです  オプションのオブジェクトは必須ではありません。   オプションのオブジェクトが無い場合には、実行されないか、または INF_Framework から警告情報が表示されます。   警告情報が表示されても、プログラムが止まることはありません。  フォーム   ├ ファミリ   │ ├ famRecordUpDown ← オプションのオブジェクト   │ ├ famSpinButton  ← オプションのオブジェクト   │ └ famModernUI   ← オプションのオブジェクト   ├ ワークスペース   │ ├ INFtxtCommon ← 必須オブジェクト   │ ├ INFcmdCommon ← 必須オブジェクト   │ └ FSCtxtPaletteColorName         ┐   │   ├ FSCtxtPaletteColorName入力支援ボタン ├─ オプションのオブジェクト   │   └ FSClblPaletteColorName       ┘   ├ フォーム操作バー   ├ フォームヘッダ部   │ ├ a   │ ├ aA   │ ├ aB   │ ├ aC   │ ├ aD   │ ├ aE   │ ├ aF   │ ├ aG   │ ├ aH   │ ├ lblFlatButtonBorder_1 ← オプションのオブジェクト   │ ├ EZWcmdズームイン   ┐   │ ├ EZWcmdズームアウト  │   │ ├ EZWtxtMagnification  ├─ 標準のコマンドボタン ※ヘッダ部左上に配置することを強く推奨します    │ ├ INFcmdWhoAreYou    │   │ ├ HDLVARcmdWhoAreYou  ┘   │ ├ cmdAlt_I_ズームイン  ┐ アクセスキー[Alt + I]とアクセスキー[Alt + I]用です。   │ ├ cmdAlt_O_ズームアウト ┘   │ └ ONEcmdUI変換      ← オプションのオブジェクト   └ フォーム明細部     ├ 行セレクタ     ├ tA     ├ tB     ├ tC     ├ tD     ├ tE     ├ tF     ├ tG     └ tH  ■ NO_EZW.kex / NO_EZW_Plus.kex 共通  標準 INF Framework 第3.3版 MkII 名札 メインは、INF_Framework のメイン処理です。   **---------- ---------------**    と   **---------- ---------------**   で囲まれた 217行の範囲です   外部テキスト:ユニットINF_3-3MkII_名札メイン.txt と同じ内容です。  INFprcStartup は INF_Framework のスタートアップです。   この INF_Framework のスタートアップは Thin_INF_Framework 専用です  "Thin" とは、機能を制限したバージョンという意味です。   Thin_INF_Framework とは 列固定可能な項目スクロール( FLD / EZW )機能を無効にしたバージョンです。   注意:( オートINF_Framework / モダンINF_Framework ) または ( クラシックINF_Framework / NULL INF_Framework ) のスタートアップとして利用出来ません。   外部テキスト:ユニットINF_3-3MkII_INFprcStartup_NO_EZW.txt と同じ内容です。  名札  メイン   │   └ 標準 INF Framework 第3.3版 MkII 名札 メイン     ├ ( VKprcOnErrorVKprcConstantDefine )     ├ ( VKprcConstantDefine )     ├ ( ONEforLNCprcPropertyEditTblNameSet )     ├ ( INFprcOnErrorEventFormBeginON )     ├ ( HDLVARprcReferWfmHdlGet )     ├ ( HDLVARprcParameterGet )     ├ ( HDLVARprcVarParameterReform )     ├ ( HDLVARprcMacroVarRun )     └ ( HDLVARprcMacroStoreRun )  INFprcStartup   │   └ ( INFprcUTLStartup )   カッコ"()"で囲まれている手続き名は、INF_Framework.cmx / IPS_Framework.cmx でカプセル化されています。   カプセル化:イベント処理ファイル(.kex)とは別のライブラリファイル(.cmx)に手続きを配置して隠すことです。  ■ フォームとイベント処理ファイルに Thin_INF_Framework を組み込む手順  1.イベント処理ファイルの[名札 メイン]に外部テキスト:ユニットINF_3-3MkII_名札メイン.txt を読み込む。 ※[名札 メイン]の範囲ならばどこでもOK  2.イベント処理ファイルに外部テキスト:ユニットINF_3-3MkII_INFprcStartup_NO_EZW.txt を読み込む。   ※これは一般手続き:INFprcStartup です  3.フォームのワークススペースに、INFtxtCommon というオブジェクト名の[テキスト]オブジェクトを作成する。    ※作るだけでOK  4.フォームのワークススペースに、INFcmdCommon というオブジェクト名の[コマンドボタン]オブジェクトを作成する。 ※作るだけでOK  という4ステップでOKです。  後は、仕上げに標準のコマンドボタンをフォームにコピペすればOKです                         ・・・   │ ├ EZWcmdズームイン   ┐   │ ├ EZWcmdズームアウト  │   │ ├ EZWtxtMagnification  ├─ 標準のコマンドボタン ※ヘッダ部左上に配置することを強く推奨します    │ ├ INFcmdWhoAreYou    │   │ ├ HDLVARcmdWhoAreYou  ┘   │ ├ cmdAlt_I_ズームイン  ┐ アクセスキー[Alt + I]とアクセスキー[Alt + I]用です。   │ ├ cmdAlt_O_ズームアウト ┘   │ └ ONEcmdUI変換      ← オプションのオブジェクト  なお、INF_Framework を組み込んだ全てのフォームのヘッダ部左上に配置すると外見上の統一感が生まれるのでおススメします。  また、INF_Framework が組み込まれているか否かの識別にも役立ちます。  インスタントラーメンを作るのと同じくらいに簡単でしょう。アハハハha (^^ok  ■外部テキスト:ユニットINF_3-3MkII_名札メイン.txt の配置について  イベント処理ファイル(.kex)へThin INF_Framwrork を組み込む際の ユニットINF_3-3MkII_名札メイン.txt の読み込み位置をご案内します。  名札 メイン                 ┐   変数宣言 局所,・・・   │                 │                 │                 ├─ [INF_Framwrork 名札 メイン]より上の行に                 │                 │  局所変数を宣言してください。                 │                 ┘  ┌──────────────┐  │INF_Framwrork 名札 メイン │イベント処理(.kex)の[名札 メイン]の最後に  │              │  │              │ユニットINF_3-3MkII_名札メイン.txt を読み込んでください。  │              │  │              │※もちろん、コピペでもOKです。  └──────────────┘  *  ↑上のように配置すれば、変数管理で変数を一覧した時に見やすくなります。  なお、拙作:整形ユーティリティの[変数チェック]を実行した場合には、[INF_Framwrork 名札 メイン]で宣言したフレームワーク用の変数は表示されません。  以下は、除外される局所変数名の接頭辞です。   &VKm, &UIm, &EZWm, &INFm, &LNCm, &MNUm, &ONEm, &SPNm, &UTLm, &FSCm   &HDLCOMm, &HDLSELm, &HDLVARm, &INFMTDm, &UTLFLDm, &UTLJMPm, &UTLLOCKm, &UTLSORTm  ■自作のイベントハンドラに関してのご注意  Thin INF_Framework もオートINF_Framework と同じです。  ↓以下は、FW_オートINF_Framework_MkII.kex の[名札 メイン]に書かれている注意です。   *---------- begin オートINF_Framework ノート ---------------*   ** オートINF_Framework.wfm/.kev/.cmd IPS_form   第 5.4 版   ** <ご注意>   ** 1.以下のイベントハンドラは予約済みです。このイベント処理ファイル( .kev )に、これらのイベントハンドラを作らないで下さい。   **  フォーム::フォーム開始   **  フォーム::フォーム終了   **  フォーム::レコード移動   **  フォーム::キーダウンン   **  フォーム::システムキーダウン   **  フォーム::タイマー1   **  フォーム::タイマー2   ** 2.項目名ラベル( lblCaption_1 〜 lblCaption_100 )オブジェクトは変更しないで下さい。   ** 3.項目テキスト( txtField_1  〜 txtField_100  )オブジェクトは変更しないで下さい。   ** 4.項目テキスト( txtField_1  〜 txtField_100  )オブジェクトのイベントハンドラは作成しないで下さい。   ** 5.以下のファミリのベントハンドラは予約済みです。このイベント処理ファイル( .kev )に、これらのイベントハンドラを作らないで下さい。   **  famCAP   **  famEZW   **  famFLD   **  famRecordUpDown   **  famSpinButton   **  famModernUI   *---------- end  オートINF_Framework ノート ---------------*  つまり、  [フォーム::フォーム開始]  [フォーム::フォーム終了]  [フォーム::レコード移動]  [フォーム::キーダウン]  [フォーム::システムキーダウン]  [フォーム::タイマー1]  [フォーム::タイマー2]  以上の7つのイベントは自作しないでください。  もしも、これらのイベントハンドラを、イベント処理(.kex)に作ってしまうと、INF_Framework が正しく動作しなくなります。  特に、[フォーム::フォーム開始]と[フォーム::フォーム終了]のイベントハンドラをイベント処理(.kex)に作ってしまうと、即座に INF_Famework が動作しなくなります。  だから、これらのの7つのイベントは自作しないでください。  ちなみに、これらの7つのイベントは初級者には使い道と使い方が難しいイベントです。また、虫も出やすい厄介な所なんですよ。(^^ゞ  ということで、INF_Framework を使用する人は、  [フォーム::フォーム開始]の代用として、[開始時実行コマンド]ボタン(例えば cmdStartup)を使ってください。  [フォーム::フォーム終了]の代用として、[終了時実行コマンド]ボタン(例えば cmdFinish )を使ってください。  どうしても[7つのイベント]のいずれかを使いたい場合には、もちろん対処方法はあります。  ただし、初従者や上級者のレベルの人にはおススメできませんので、特に公開はしていません。ご了承ください。  ■編集時の表示倍率のご注意    Rev.0 2025.02.27(追記)   Thin_INF_Framework 以外のオートINF_Framework等では、  編集時の表示倍率が{ ポイントピクセル,ウィンドウに合わせる,フォーム定義に合わせる }での使用は問題が発生するので避けてください。    Thin_INF オートINF 編集時の表示倍率    〇可能  〇可能 { 標準,90%,80%,70%,60%,110%,120%,130%,140%,150% }    〇可能  ×不可 { ポイントピクセル,ウィンドウに合わせる,フォーム定義に合わせる }  なお、Thin_INF_Framework で、{ ポイントピクセル,ウィンドウに合わせる,フォーム定義に合わせる }を使用する場合には[Option Variable Define ]を作成してください。  名札 メイン                 ┐   変数宣言 局所,・・・   │                 │                 │                 ├─ [INF_Framwrork 名札 メイン]より上の行に                 │                 │  局所変数を宣言してください。                 │                 ┘  ┌──────────────┐  │INF_Framwrork 名札 メイン │イベント処理(.kex)の[名札 メイン]の最後に  │              │  │              │ユニットINF_3-3MkII_名札メイン.txt を読み込んでください。  │              │  │              │※もちろん、コピペでもOKです。  └──────────────┘  ┌──────────────┐  │Option Variable Define    │[INF_Framwrork 名札 メイン]に引き続き  │              │[Option Variable Define ]を追加してください。  └──────────────┘  *  **[Option Variable Define ]  *---------- begin INF Framework Option Variable Define ---------------*  if ( #変数( "INFmLive" ) )   変数宣言 局所,数値{ &INFmMyWfmMagnificationType }   if ( #変数( "INFmKnjForm" ) )    オブジェクト操作 @フォーム{ &INFmMyWfmMagnificationType = 編集時の表示倍率 }   else    オブジェクト操作 @フォーム{ &INFmMyWfmMagnificationType = 編集時の表示倍率 }   end   if ( &INFmMyWfmMagnificationType < 0 )    変数宣言 局所,整数{ &INFmWindowNoLocate = 1 }/* フォームの位置を復元しない  */    変数宣言 局所,整数{ &INFmWindowNoResize = 1 }/* フォームのサイズを復元しない */    変数宣言 局所,整数{ &INFmWindowNoZoom  = 1 }/* フォームの倍率を復元しない  */   end  end  *---------- end  INF Framework Option Variable Define ---------------* なお、[Option Variable Define ]は、{ 標準,90%,80%,70%,60%,110%,120%,130%,140%,150% }に変更した場合にも削除する必要はありません。 これは、[Option Variable Define ]が自動的に[編集時の表示倍率]を判定するからです。 { ポイントピクセル,ウィンドウに合わせる,フォーム定義に合わせる }の時、[ズームイン]と[ズームアウト]のコマンドボタンは次のように設定します。   │ ├ EZWcmdズームイン   ┐   │ ├ EZWcmdズームアウト  │   │ ├ EZWtxtMagnification  ├─ 標準のコマンドボタン ※ヘッダ部左上に配置することを強く推奨します    │ ├ INFcmdWhoAreYou    │   │ ├ HDLVARcmdWhoAreYou  ┘   │ ├ cmdAlt_I_ズームイン  ┐ アクセスキー[Alt + I]とアクセスキー[Alt + I]用です。   │ ├ cmdAlt_O_ズームアウト ┘  オブジェクト名: EZWcmdズームイン   (参考)コマンドボタン:cmdAlt_I_ズームイン も同様に設定します  標題     :   機能名   機能パラメータリスト  1 実行条件  #num( #変数( "INFmLive" ) ) .and #num( #変数( "INFmMyWfmMagnificationType" ) > 0 )  2 手続き実行 EZWcmdZoomInOutClick,5  3 なし  4 なし  オブジェクト名: EZWcmdズームイン   (参考)コマンドボタン:cmdAlt_O_ズームアウト も同様に設定します  標題     :   機能名   機能パラメータリスト  1 実行条件  #num( #変数( "INFmLive" ) ) .and #num( #変数( "INFmMyWfmMagnificationType" ) > 0 )  2 手続き実行 EZWcmdZoomInOutClick,-5  3 なし  4 なし 以上