過去の桐井戸端BBS (桐ver.8)
18450 イベント処理で文字列に数字以外のA 〜 Z と a 〜 zが入力されたらエラー表示をしたい TS 2003/01/09-20:00
イベント処理で、お知恵をお貸しください。
フォーム処理で、
テキストオブジェクトでソースは文字列項目
にデータを入れたいのですが、

A 〜 Z と a 〜 z の52種類の文字
が入力されたときは、その場でエラー表示を出したいと考え、

入力後イベントで処理をしようと思っているのですが、
どのように、記述したらよいかわかりません。

例) 53a4 → エラー
   531 → そのまま入力

よろしくご指導下さい。
環境:桐V8 OS:Me
18455 イベント処理で英字の混在を判定 佐田 守弘 2003/01/09-23:58
記事番号18450へのコメント
TSさん
前提としてイベントファイルは既に作ってある(ファイル名を指定してある)と仮定し、
該当するイベントハンドラの作り方から説明を始めます。

●イベントハンドラを作る
この判定には、「入力後」イベントを使用します。
そのオブジェクトの属性ダイアログを表示し、イベントのタブを開きます。
イベント名の一覧から「入力後」イベントを探して、ダブルクリックして
下さい。イベントファイルの編集画面に切り替わります。

●引き数の説明
上記操作で作られるイベントハンドラには、
手続き定義開始 t<オブジェクト名::入力後
(参照 文字列 &編集文字列,長整数 &モード,参照 長整数 &入力継続)
と書かれています。この中の自動変数は以下の通りです。

&編集文字列:テキストオブジェクトに入力した文字列がここに代入されて
います。
テキストオブジェクトが数値型であっても、入力後の段階では文字列型で
扱われています。

&入力継続:この変数に1を代入すれば、入力のやり直しが行われます。

●英字混在の判定
「#is英字」関数で判定して下さい。

●イベントハンドラの中身
以上の情報で、判定するコマンドは記述できると思いますが、一例を以下に示します。
以下の1行を自動で作られたイベントハンドラの手続き定義開始と手続き定義終了の間に入れて下さい。

条件 (#is(&編集文字列,0)) 代入 入力継続=1

佐田守弘(KS-00119)
18456 追加:エラーの表示 佐田 守弘 2003/01/10-00:01
記事番号18450へのコメント
エラー表示を必要とするなら、メッセージボックスコマンドで
エラーメッセージの表示を行うのが簡単でしょう。

メッセージボックスコマンド以外でエラーメッセージを出す方法としては
エラーメッセージのテキストオブジェクトを非表示で作っておき、
エラー表示する時は非表示から表示に変えてエラーを表示するなどといった方法も考えられます。

佐田守弘(KS-00119)
18464 Re:追加:エラーの表示 TS 2003/01/10-19:42
記事番号18456へのコメント
佐田 様

コメント頂きありがとうございます。

今回教えていただいた、イベントで処理できました。
ありがとうございました。
 また、エラーメッセージに関しても配慮していただき痛み入ります。
重ね重ね有難うございました。

戻る