| > つまり、絶対に存在する[フォーム開始]イベントのプロパティをオンにする > オブジェクト操作 @フォーム{ フォーム開始 = 1 } > この時、半角の「フォーム」 が存在せずに、全角の「フォーム」が存在する場合、エラーします。 > このエラーによって、呼び出した一般手続きで > オブジェクト操作 @フォーム{ フォーム開始 = 1 } /* プロパティ名は、半角でもOK */ > を実行しようというワケです。 > この時ついでに、局所変数のフラグも立てておきます。
[フォーム開始]イベントのプロパティをオンにする代わりに、
[フォーム開始]イベントのプロパティを参照する方法でも可能です。
以下も参考にしてください。
*---------- begin VK Framework 名札 メイン ---------------* 変数宣言 局所,整数 { &VKmLive = 1 } /* VK_library を有効にする Yes:1 No:0 */ if ( #変数( "VKmLive" ) ) 変数宣言 局所,文字列{ &VKmLibraryName } /* Rev.3 以降は VK_Framework.cmd ※Rev.2 までは VK_library.cmd */ &VKmLibraryName = #一括パス名 + "VK_Framework.cmd" if ( #ファイルサイズ( &VKmLibraryName ) < 0 .and #バージョン番号 >= 10 ) &VKmLibraryName = #ファイル名( &VKmLibraryName, 5 ) + #ファイル名( &VKmLibraryName, 2 ) + ".cmx" end
if ( #ファイルサイズ( &VKmLibraryName ) > 0 ) ライブラリ &VKmLibraryName
if ( #バージョン番号 >= 10 .and #配列要素数( "INFmKnjForm" ) = -1 ) /* 変数:&INFmKnjForm が未宣言ならば */ 変数宣言 局所,整数{ &INFmKnjForm } 手続き実行 VKprcKnjFormCheck( ) end else &VKmLive = 0 メッセージボックス "VK Framework 名札 メイン", \ "ファイルが見つかりません\n\nフォルダ: " + #文字置換( #ファイル名( &VKmLibraryName, 5 ), "\", "\\") \ + "\n\nファイル: " + #ファイル名( &VKmLibraryName, 3 ) + "\n\nVK Framework は停止しました" \ , アイコン = !, ボタン指定 = 1, 制御文字展開 = する end if ( #変数( "VKmLive" ) ) ** VK Variable 変数宣言 局所,文字列{ &VKmScanString, &VKmChr, &VKmFlagKeyName, &VKmKeyString, &VKmMouseString } 変数宣言 局所,文字列{ &VKmKeyNameKeyDownDim[8], &VKmKeyNameSystemKeyDownDim[8], &VKmKeyNameKeyUpDim[8], &VKmKeyNameSystemKeyUpDim[8] } 変数宣言 局所,文字列{ &VKmKeyMacroKeyDownDim[8], &VKmKeyMacroSystemKeyDownDim[8], &VKmKeyMacroKeyUpDim[8], &VKmKeyMacroSystemKeyUpDim[8] } 変数宣言 局所,文字列{ &VKmKeyCancelKeyDownDim[8], &VKmKeyCancelSystemKeyDownDim[8], &VKmConstantNumList, &VKmConstantChrList } 変数宣言 局所,長整数{ &VKmKeyNum, &VKmScanNum, &VKmFlagNum, &VKmLongNum } 変数宣言 局所,整数 { &VKmAltKey, &VKmRepeat, &VKmExtendKey, &VKmNoKeyboard } 変数宣言 局所,整数 { &VKmKeyDownLive, &VKmSystemKeyDownLive, &VKmKeyUpLive, &VKmSystemKeyUpLive, &VKmOnKey, &VKmConstantDimNum } 手続き実行 VKprcConstantDefine( &VKmConstantNumList, &VKmConstantChrList, &VKmConstantDimNum ) ** option 変数宣言 局所,整数 { &VKmKeyMask, &VKmCustomizeKeyMask, &VKmSpecialKeyMask, &VKmFunctionKeyMask } ** option 変数宣言 局所,文字列{ &VKmConstantChrDim[ &VKmConstantDimNum ] } ** option 手続き実行 VKprcConstantDimStore( &VKmConstantChrList, &VKmConstantChrDim ) end end *---------- end VK Framework 名札 メイン ---------------*
手続き定義開始 VKprcKnjFormCheck( ) 変数宣言 自動,文字列{ &icon, &title = "VKprcKnjFormCheck( )", &msg } 変数宣言 自動,整数 { &eventFormBeginStatus }
条件 ( #バージョン番号 >= 10 ) エラー処理 手続き名 = "VKprcOnErrorEventFormBeginStatusGet" オブジェクト操作 @フォーム{ &eventFormBeginStatus = フォーム開始 } 条件 ( #バージョン番号 >= 10 ) エラー処理 /* 解除を忘れずに */
手続き定義終了
手続き定義開始 SPNprcOnErrorEventFormBeginStatusGet( ) 変数宣言 自動,文字列{ &icon, &title = "SPNprcOnErrorEventFormBeginStatusGet( )", &msg } 変数宣言 自動,整数 { &setInt } 変数宣言 自動,整数 { &eventFormBeginStatus }
** この手続きは、[SPN Framework 名札 メイン]の SPNprcKnjFormCheck( ) の[エラー処理]コマンドで呼び出される
** 桐10 では、フォームオブジェクト名が 半角 と 全角 の2種類ある ** 桐9 等から変換したフォームでは "フォーム" ※半角 ** 桐10で新規作成したフォームでは "フォーム" ※全角 ** この手続きは、局所変数:整数:&INFmKnjForm にフラグ:1 を立てる ** プロパティ:フォーム開始 は変更しない
&setInt = #set( "INFmKnjForm", 1 ) **オブジェクト操作 @フォーム{ &eventFormBeginStatus = フォーム開始 } /* プロパティ名は、半角でもOK */
**&errno エラーメッセージの番号が代入されています。この番号はKUから始まるエラーの場合は正の数、KDから始まるエラーの場合は負の数になります(整数)。 **&lineno エラーが発生した一括処理またはイベント処理の行番号が代入されています(長整数)。 **&cmdname エラーが発生した一括処理またはイベント処理のファイル名が代入されています(文字列)。 **&errmsg エラーメッセージの内容が代入されています(文字列)。 **&detail エラーの詳細情報が代入されています(文字列)。
&msg = "エラー処理コマンドで呼び出された手続きです" &msg = &msg + "\n\n&errno = " + #str( &errno ) &msg = &msg + "\n\n&lineno = " + #str( &lineno ) &msg = &msg + "\n\n&cmdname = " + #文字置換( &cmdname, "\", "\\" ) &msg = &msg + "\n\n&errmsg = " + &errmsg &msg = &msg + "\n\n&detail = " + &detail &icon = "i" **手続き実行 SPNprcMsgPause( &icon, &title, &msg )
手続き定義終了
|