まだ直ってないので2年ぶりにUPするねー
どんな事かというと、
たとえば、新規レコード追加などでカスタムダイアログを出すようなとき
デフォルトでは"OK"が1、"キャンセル"が2になるのですが、
Enterを押すと当然OKが優先されます。
しかし、ダイアログを出した状態でEscボタンを押すと、キャンセルどころか、
1の”OK”を選んで新規レコードが追加されてしまうという現象。
(大したこと無いようで、開発者がこれを忘れてしまうと、けっこう
トラブります なぜかというとユーザーは他ソフトでもEscボタンに慣れてるから・・・)
ここでEscボタンを押すとレコードが新規で追加されてしまいます。
中身はというと、
こんなスクリプトで、ダイアログは
という感じで"OK"が優先されてるわけです。これはいいよね
優先を変えたければ、入替えればいいんです。
問題は、どうしてEscボタンをデフォルト値に反応させたか、なんですよ。
で、嫌なんですけど上の"OK"と"キャンセル"の位置を入替えて、データの確定は2のOKの方にチェックをふります。
スクリプトは
Get ( 最終メッセージ選択 ) = 2
Get ( 最終メッセージ選択 ) = 2
にします。
これで
ダイアログを出してEnterを押すと、キャンセルが優先されます。
ダイアログを出した状態でEscボタンを押してもキャンセルされます。
ダイアログを出した状態でEscボタンを押してもキャンセルされます。
(というか、Enter押してOKなら最初からダイアログなんて必要ないわけで、一旦注意を促す上で必要なんだけど、ダイアログ嫌いな僕でも、こういう場合は、キャンセルを優先させた方が安全かと思います)
ただ、他との兼ね合いで、"OK"と"キャンセル"の位置を変えるというのは
違和感、大ありなんですよねー
(新規レコードごときでは使わないかと思いますが、オリジナルでナビボタンなど作るとき、安易に新規レコードを増やしてもらいたくない場合や、頻繁に使うボタンの横に新規レコードボタンがある場合など、反応させてもキャンセル優先にしたい場合など)
0 件のコメント:
コメントを投稿