HDLAPIprcItem_HDLAPIprcHandle.txt  HDLAPI 仕様メモ by ONnoji  Rev.0 2025.04.26  この文書はINF_Framework(以降 INF_FW と表記する)の機能:HDLAPI に関する仕様メモです。  ― HDLAPIとは  HDLAPIとは、ウィンドウ・ハンドル番号(HDL)+アプリケーションインタフェース(API)の意味を込めたネーミングです。  HDLAPIには、次の2種類があります。   HDLAPIprcItem  … アイテムを選択するモーダルフォームを表示します   HDLAPIprcHandle … 現在表示されているウィンドウを選択するフォームを表示します  ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇  ■ HDLAPIprcItem  この機能は、主ウィンドウからモーダルなアイテム選択のダイアログボックスを開きます。  手続き名(引数):HDLAPIprcItem( &modalControl, &titlebarMsg, &workMsg, &stringDim, &procedureName, &done )  値渡し引数:  整数型/ &modalControl … 1:モーダルのダイアログボックス 0:モードレスのダイアログボックス  文字列/ &titlebarMsg  … タイトルバー文字列  文字列/ &workMsg    … 操作ガイドの文字列  文字列/ &stringDim   … アイテムとして値を渡す配列変数 ※注意 引数に []と要素数は指定しない 要素数は最大50まで可能  文字列/ &procedureName … アイテムを選択してダイアログボックスを閉じた時、主ウィンドウ側の[タイマー2]イベントで実行する手続き名  参照渡し引数:  整数型/ &done     … 1:実行した 0:実行できなかった  使い方( usage ):   **       引数の意味:モーダル    タイトルバー文字  操作ガイド 配列変数名 実行手続き名  終了状態   手続き実行 HDLAPIprcItem( &modalControl, &titlebarMsg, &workMsg, &stringDim, &procedureName, &done )  使用サンプル:  手続き定義開始  cmdアイテム表示Click( )   変数宣言 自動,文字列{ &icon, &title = "cmdアイテム表示Click( )", &msg }   変数宣言 自動,文字列{ &SP = #jis( #hex("20") ) }   変数宣言 自動,文字列{ &stringDim[ 20 ] }   変数宣言 自動,文字列{ &titlebarMsg, &workMsg, &procedureName }   変数宣言 自動,整数 { &modalControl }   変数宣言 自動,整数 { &done }   *----- begin アイテム作成 -----*   変数宣言 自動,文字列{ &アイテム名配列DIM[ 20 ] }   変数宣言 自動,整数 { &i, &loop, &step = 1 }   &loop = #配列要素数( "アイテム名配列DIM" )   繰り返し &i = 1, &loop, &step    &アイテム名配列DIM[ &i ] = #右側文字列( #複写( &SP, 3 ) + #str( &i ), 3 ) + "番めのアイテム"   繰り返し終了   *----- end アイテム作成 -----*   ** 以下は値渡しの引数の初期値   &modalControl = 1 /* モーダル */   &titlebarMsg = &title /* タイトルバー文字 */   &workMsg  = "アイテムをクリックしてください" /* 操作ガイド */   &stringDim = &アイテム名配列DIM /* 配列変数名 */   ** 注意 []と要素数は指定しない   &procedureName  = "cmdアイテム表示ClickRETURN" /* 実行手続き名 */   **       引数の意味:モーダル    タイトルバー文字  操作ガイド 配列変数名 実行手続き名  終了状態   手続き実行 HDLAPIprcItem( &modalControl, &titlebarMsg, &workMsg, &stringDim, &procedureName, &done )  手続き定義終了  〔主ウィンドウ〕  ┌───────────────────┐  │手続き定義開始            │  │ cmdアイテム表示Click( )       │  │                   │  │** モーダル             │【モーダルの指定例】  │&modalControl = 1           │ &modalControl = 1 (例) &modalControl = 1 / &modalControl = 0  │                   │  │** タイトルバー文字の指定      │【タイトルバー文字の指定の指定例】  │&titlebarMsg = 文字式         │ &titlebarMsg = "cmdアイテム表示Click"  │                   │  │** 操作ガイドの指定         │【操作ガイドの指定例】  │&workMsg = 文字式           │ &workMsg = "アイテムをクリックしてください"  │                   │  │** 値を渡す配列変数の指定      │【値を渡す配列変数の指定例】  │&stringDim /* 文字列型配列変数 */  │ &stringDim = &stringVariableNameDim /* 要素数は最大50まで可能 */  │                   │ ※注意 引数に []と要素数は指定しない  │                   │  │** 手続き名の指定          │【アイテムを選択した場合に主ウィンドウで実行する手続き名の指定例】  │&procedureName = 文字式        │ &procedureName = "cmdアイテム表示ClickRETURN" /* アイテムを選択した場合のみ実行します */  │                   │  │手続き実行              │【HDLAPIprcItem の呼び出し】  │ HDLAPIprcItem(           │ 手続き実行 HDLAPIprcItem( &modalControl, &titlebarMsg, &workMsg, &stringDim, &procedureName, &done )  │  &modalControl,          │  │  &titlebarMsg,           │  │  &workMsg,             │  │  &stringDim,            │     〔ダイアログボックス〕  │  &procedureName,          │     ┌───────────────┬─┐  │  &done               │     │タイトルバー( &titlebarMsg )│×│または[Esc]※[Esc]はモーダルの場合に有効  │  )                 │⇒⇒⇒⇒⇒├───────────────┴┬┤  │                   │モーダル │操作ガイド ( &workMsg )   ││  │                   │ で   │                ││  │手続き定義終了            │オープン┌┤ 1 アイテム( &stringDim[1] ) ││  └───────────────────┘    ││ 2 アイテム( &stringDim[2] ) ││                           ││ 3 アイテム( &stringDim[3] ) ││                           ││ 4 アイテム( &stringDim[4] ) ││                           ││ 5 アイテム( &stringDim[5] ) ││                      ┌────┤│   :            ││                      │    ││   省 略           ││                      │    ││   :            ││                      │    ││18 アイテム( &stringDim[18] ) ││                      │    ││19 アイテム( &stringDim[19] ) ││                      │    └┤20 アイテム( &stringDim[20] ) ││                      │     │                ││                      │     │[伸縮⇒⇒⇒⇒] [キャンセル]││                      │     └────────────┼───┼┘                      │                  │   │                 (引数:アイテム番号)             └─┬─┘  〔主ウィンドウ〕            │                    │  ┌───────────────────┼──────┐             ↓  │手続き定義開始            ↓      │    〔ダイアログボックス〕を閉じるだけで何もしない      │ cmdアイテム表示ClickRETURN( 整数 &itemNum )    │  │                          │  │ 変数宣言 自動,文字列{ &icon,          │  │  &title = "cmdアイテム表示ClickRETURN()", &msg }│  │                          │  │ &msg = "&itemNum = " + #str( &itemNum )     │  │ &icon = "i"                    │  │ 手続き実行 INFprcMsgPause( &icon, &title, &msg ) │  │                          │  │手続き定義終了                   │  └──────────────────────────┘  手続き定義開始 cmdアイテム表示ClickRETURN( 整数 &itemNum )   変数宣言 自動,文字列{ &icon, &title = "cmdアイテム表示ClickRETURN", &msg }   &msg = "&itemNum = " + #str( &itemNum )   &icon = "i"   手続き実行 INFprcMsgPause( &icon, &title, &msg )  手続き定義終了  ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇  ■ HDLAPIprcHandle  HDLAPIprcHandle … 現在表示されているウィンドウを選択するフォームを表示します  この機能は、主ウィンドウからモーダルなウィンドウ選択のダイアログボックスを開きます。  手続き名(引数):HDLAPIprcHandle( &modalControl, &titlebarMsg, &workMsg, &extensionList, &hdlExcept, &done )  値渡し引数:  整数型/ &modalControl … 1:モーダル 0:モードレス  文字列/ &titlebarMsg  … タイトルバー文字列  文字列/ &workMsg    … 操作ガイドの文字列  文字列/ &extensionList … "wfx,tbx,vix,xvx,wfm,tbl,viw,xvw" 半角コンマの拡張子リスト 全ての拡張子を指定する場合には "" または 未定義値  整数型/ &hdlExcept … 自分自身のフォームウィンドウを除外する場合には、&hwindow 除外を指定しない場合には "" または 未定義値  参照渡し引数:  整数型/ &done     … 1:実行した 0:実行できなかった  使い方( usage ):   ** 引数の意味:モーダル タイトルバー文字 操作ガイド 拡張子リスト 除外ハンドル 終了状態※戻り値はハンドルを取得した:1 取得しない:0   手続き実行 HDLAPIprcHandle( &modalControl, &titlebarMsg, &workMsg, &extensionList, &hdlExcept, &done )  INF_FW のシステム変数:  ・&HDLSELmAction … [コマンド]コマンドで実行するコマンド   &HDLSELmAction にはウィンドウのアイテムを選択した場合に[タイマー1]で実行するコマンドを指定する  (例)   &HDLSELmAction = "手続き実行 cmdウィンドウ一覧ClickRETURN( &HDLSELmTargetHdlNum, &HDLSELmSelectFileName, &HDLSELmWfmFileName, &HDLSELmTblFileName )"   選択したウィンドウの情報は、次の INF_FW のシステム変数に代入されます。   ・&HDLSELmTargetHdlNum  … 選択したウィンドウのハンドル番号   ・&HDLSELmSelectFileName … ウィンドウのファイル名   ・&HDLSELmWfmFileName  … フォームのファイル名   ・&HDLSELmTblFileName  … 表のファイル名  使用サンプル:  手続き定義開始 cmdウィンドウ一覧Click( )   変数宣言 自動,文字列{ &icon, &title = "cmdウィンドウ一覧Click", &msg }   変数宣言 自動,文字列{ &extensionList }   変数宣言 自動,文字列{ &titlebarMsg, &workMsg }   変数宣言 自動,整数 { &modalControl }   変数宣言 自動,整数 { &hdlExcept }   変数宣言 自動,整数 { &done }   ** &HDLSELmAction にウィンドウのアイテムを選択した場合に[タイマー1]で実行するコマンドを指定する   &HDLSELmAction = "手続き実行 cmdウィンドウ一覧ClickRETURN( &HDLSELmTargetHdlNum, &HDLSELmSelectFileName, &HDLSELmWfmFileName, &HDLSELmTblFileName )"   ** 変数名:&HDLSELmTargetHdlNum, &HDLSELmSelectFileName, &HDLSELmWfmFileName, &HDLSELmTblFileName は INF_FW のシステム変数   &modalControl = 1 /* モーダル */   &titlebarMsg = &title /* タイトルバー文字 */   &workMsg  = "アイテムをクリックしてください" /* 操作ガイド */   &extensionList = ""      /* 拡張子の指定 */   &hdlExcept = &hwindow /* 除外ハンドル */   ** 引数の意味:モーダル タイトルバー文字 操作ガイド 拡張子リスト 除外ハンドル 終了状態※戻り値はハンドルを取得した:1 取得しない:0   手続き実行 HDLAPIprcHandle( &modalControl, &titlebarMsg, &workMsg, &extensionList, &hdlExcept, &done )  手続き定義終了  〔主ウィンドウ〕  ┌───────────────────┐  │手続き定義開始            │  │ cmdウィンドウ一覧Click( )      │  │                   │  │** [タイマー1]で実行するコマンド  │【[タイマー1]で実行するコマンドの指定例】  │&HDLSELmAction = 実行可能なコマンド  │ &HDLSELmAction = "手続き実行 cmdウィンドウ一覧ClickRETURN( &HDLSELmTargetHdlNum, &HDLSELmSelectFileName, &HDLSELmWfmFileName, &HDLSELmTblFileName )"  │                   │  │** モーダル             │【モーダルの指定例】  │&modalControl = 1           │ &modalControl = 1 (例) &modalControl = 1 / &modalControl = 0  │                   │  │** タイトルバー文字の指定      │【タイトルバー文字の指定の指定例】  │&titlebarMsg = 文字式         │ &titlebarMsg = "cmdアイテム表示Click"  │                   │  │** 操作ガイドの指定         │【操作ガイドの指定例】  │&workMsg = 文字式           │ &workMsg = "アイテムをクリックしてください"  │                   │  │** 拡張子の指定の指定        │【値を渡す配列変数の指定例】  │&extensionList = 文字式        │ &extensionList = "" (例) &extensionList = "wfx,tbx,vix,xvx,wfm,tbl,viw,xvw" 半角コンマの拡張子リスト  │                   │ ※注意 全ての拡張子を指定する場合には "" または 未定義値  │                   │  │** 手続き名の指定          │【除外ハンドル】  │&hdlExceptt = 整数 または 未定義値  │ &hdlExceptt = &hwindow /* 自分自身のフォームウィンドウを除外する */  │                   │ ※注意 除外を指定しない場合には "" または 未定義値  │                   │  │手続き実行              │【HDLAPIprcHandle の呼び出し】  │ HDLAPIprcItem(           │ 手続き実行 HDLAPIprcHandle( &modalControl, &titlebarMsg, &workMsg, &extensionList, &hdlExcept, &done )  │  &modalControl,          │  │  &titlebarMsg,           │  │  &workMsg,             │  │  &extensionList,          │     〔ダイアログボックス〕  │  &hdlExcept,            │     ┌─────────────────────┬─┐  │  &done               │     │タイトルバー( &titlebarMsg )      │×│または[Esc]※[Esc]はモーダルの場合に有効  │  )                 │⇒⇒⇒⇒⇒├─────────────────────┴┬┤  │                   │モーダル │操作ガイド ( &workMsg )         ││  │                   │ で   │                      ││  │手続き定義終了            │オープン┌┤ 1 ウィンドウ名:編集対象表名        ││  └───────────────────┘    ││ 2 ウィンドウ名:編集対象表名        ││                           ││ 3 ウィンドウ名:編集対象表名        ││                           ││ 4 ウィンドウ名:編集対象表名        ││                           ││ 5 ウィンドウ名:編集対象表名        ││                      ┌────┤│   :                  ││                      │    ││   省 略                 ││                      │    ││   :                  ││                      │    ││ 9 ウィンドウ名:編集対象表名        ││                      │    ││10 ウィンドウ名:編集対象表名        ││                      │    └┤11 ウィンドウ名:編集対象表名        ││                      │     │                      ││                      │     │□パスを表示 [伸縮⇒⇒⇒⇒][キャンセル] ││                      │     └──────────────────┼───┼┘                      │                        │   │                 (引数:ハンドル番号)                   └─┬─┘  〔主ウィンドウ〕            │                          │  ┌───────────────────┼─────────────────┐        ↓  │手続き定義開始            ↓                 │ 〔ダイアログボックス〕を閉じるだけで何もしない      │ cmdウィンドウ一覧ClickRETURN( 整数 &hdl,                 │  │  文字列 &windowName, 文字列 &wfmName, 文字列 &tblName )        │  │                                     │  │ 変数宣言 自動,文字列{ &icon,                     │  │  &title = "cmdウィンドウ一覧ClickRETURN( )", &msg }          │  │                                     │  │ &msg = "&hdl = " + #str( &hdl )            │  │ &msg = &msg + "\n\n&windowName = " + #文字置換( &windowName, "\", "\\" )│  │ &msg = &msg + "\n\n&wfmName = " + #文字置換( &wfmName, "\", "\\" )│  │ &msg = &msg + "\n\n&tblName = " + #文字置換( &tblName, "\", "\\" )│  │ &icon = "i"                               │  │ 手続き実行 INFprcMsgPause( &icon, &title, &msg )            │  │                                     │  │手続き定義終了                              │  └─────────────────────────────────────┘  (重要)↑これは INF_FW のシステム変数:&HDLSELmAction に以下の内容をした場合の例です。      &HDLSELmAction = "手続き実行 cmdウィンドウ一覧ClickRETURN( &HDLSELmTargetHdlNum, &HDLSELmSelectFileName, &HDLSELmWfmFileName, &HDLSELmTblFileName )"  手続き定義開始 cmdウィンドウ一覧ClickRETURN( 整数 &hdl, 文字列 &windowName, 文字列 &wfmName, 文字列 &tblName )   変数宣言 自動,文字列{ &icon, &title = "cmdウィンドウ一覧ClickRETURN", &msg }   変数宣言 自動,整数 { &debug }   &debug = 1   if ( &debug )    &msg = "&hdl = " + #str( &hdl )    &msg = &msg + "\n\n&windowName = " + #文字置換( &windowName, "\", "\\" )    &msg = &msg + "\n\n&wfmName = " + #文字置換( &wfmName, "\", "\\" )    &msg = &msg + "\n\n&tblName = " + #文字置換( &tblName, "\", "\\" )    &icon = "i"    手続き実行 INFprcMsgPause( &icon, &title + " : debug", &msg )   end  手続き定義終了 以上です。