| yu-shunさんこんにちは添付ファイルはファイル名が正常でないので ダウンロードはしていません。 普通の名前を付けないと用心深い人はダウンロードしません。
イベントを設定したいテキストオブジェクトが時間型だとすれば 入力後イベントを作成した方がいいと思います。 入力後は入力文字列に誤りがあるともう一度入力を促すことが 出来ます。 イベントの作り方がはっきりしませんが、マウスイベントを作成 するときは、イベントを設定したいテキストオブジェクトのイベントタブ を開き左下にイベントの一覧が列挙されていますがスクロールバーを下方 向に移動しその中の □入力後 の□にチェックを入れて「入力後」の文字をダブルクリックします。 proc t時刻::入力後(refer str &編集文字列,Long &モード,refer Long &入力継続) end こういう感じの文書が日本語で表示されますので趣味に合わせて変更後 以下の文書をマウスで範囲指定してイベントファイルに貼り付けます。 小数点や「/」は時間文字列の正常な区切り文字なので加工はしませんが 小数点が2個あったりするとエラーになるので加工してみました。 テンキーボードを前提に推定される入力文字列でエラー処理をしたので それ以外の文字では検証していません。 質問では、入力状況を説明した方がいいです。
proc t時刻::入力後(refer str &編集文字列,Long &モード,refer Long &入力継続) if (#L(&編集文字列)<1) else if (#IS数字(&編集文字列,1)=1) if (#num(#sstr(&編集文字列,1,2))>24) 確認 "24時間以上は困っちゃうもう一度(^_^)最初からお願いします。" &編集文字列 = "" , &入力継続 = 1 else &編集文字列 = #sstr(&編集文字列,1,2)+":"+#sstr(&編集文字列,3,2)\ +":"+#sstr(&編集文字列,5,2)+"."+#sstr(&編集文字列,7,3) end else if (#文字位置(&編集文字列,",")>0) &編集文字列 = #S(&編集文字列,",",":") else if (#文字位置(&編集文字列,"*")>0) &編集文字列 = #S(&編集文字列,"*",":") else if (#L(&編集文字列)-#L(#S(&編集文字列,".",""))>1) &編集文字列 = #S(&編集文字列,".",":") else if (#L(&編集文字列)-#L(#S(&編集文字列,".",""))=1) 確認 "1.5 は1時間半 10.23 は10時間13分48秒" else end end end
|