「Getkword」の版間の差分
細編集の要約なし |
編集の要約なし |
||
(同じ利用者による、間の2版が非表示) | |||
1行目: | 1行目: | ||
{{AutoLISP}} | |||
; 構文 | ; 構文 | ||
: (getkword [''msg'']) | : (getkword [''msg'']) | ||
6行目: | 8行目: | ||
: ユーザがキーワードを入力するまで待機(一時停止)し、入力されたキーワードを返す。 | : ユーザがキーワードを入力するまで待機(一時停止)し、入力されたキーワードを返す。 | ||
: 有効なキーワードは、getkword 関数を呼び出す前に initget 関数で設定する。getkword 関数の要求に対して、ユーザは別の LISP 式を入力することはできない。 | : 有効なキーワードは、getkword 関数を呼び出す前に initget 関数で設定する。getkword 関数の要求に対して、ユーザは別の LISP 式を入力することはできない。 | ||
: * IJCADでは initget 関数で設定されたキーワードはプロンプトメニューとして表示される。 | : * IJCADでは initget 関数で設定されたキーワードはプロンプトメニューとして表示される。(IJCAD 7 まで) | ||
; 引数 | ; 引数 | ||
:* msg : ユーザに表示するプロンプト文字列。省略した場合、プロンプトは表示されない。 | :* msg : ユーザに表示するプロンプト文字列。省略した場合、プロンプトは表示されない。 | ||
:: コマンドラインでキーワードをクリックできる様になったバージョンからは "[(Y)es / (N)o]" のような形で記述しておくとクリックに対応できる | |||
; 戻り値 | ; 戻り値 | ||
: ユーザが入力したキーワードを示す文字列。キーワードを入力せずに[Enter]を押した場合は、nil。この関数は、キーワードを定義する initget 関数を事前に呼び出さなかった場合も、nil を返す。 | : ユーザが入力したキーワードを示す文字列。キーワードを入力せずに[Enter]を押した場合は、nil。この関数は、キーワードを定義する initget 関数を事前に呼び出さなかった場合も、nil を返す。 | ||
: ユーザが有効なキーワード以外の値を入力した場合、警告メッセージを表示し、再度入力を求める。 | : ユーザが有効なキーワード以外の値を入力した場合、警告メッセージを表示し、再度入力を求める。 | ||
39行目: | 45行目: | ||
; ユーザの応答が、先の initget 関数で定義されたキーワードの 1 つではなかったため、警告メッセージを表示した後に、msg 引数で与えられた文字列を使用して、ユーザに再度プロンプトが表示された。 | ; ユーザの応答が、先の initget 関数で定義されたキーワードの 1 つではなかったため、警告メッセージを表示した後に、msg 引数で与えられた文字列を使用して、ユーザに再度プロンプトが表示された。 | ||
(initget 1 "Yes No") | |||
nil | |||
(setq x (getkword "よろしいですか?[はい(Y)/いいえ(N)] ")) | |||
よろしいですか?[はい(Y)/いいえ(N)] Y | |||
そのようなオプション キーワードはありません. | |||
よろしいですか?[はい(Y)/いいえ(N)]Y | |||
"Yes" | |||
; initget は全角文字をキーワードとして指定できないので、全角を受け入れる場合は initget を使わずに自前でキーワードをチェックする必要がある。 | |||
</pre> | </pre> | ||
2023年5月7日 (日) 23:28時点における最新版
- 構文
- (getkword [msg])
- 機能
- ユーザがキーワードを入力するまで待機(一時停止)し、入力されたキーワードを返す。
- 有効なキーワードは、getkword 関数を呼び出す前に initget 関数で設定する。getkword 関数の要求に対して、ユーザは別の LISP 式を入力することはできない。
- * IJCADでは initget 関数で設定されたキーワードはプロンプトメニューとして表示される。(IJCAD 7 まで)
- 引数
-
- msg : ユーザに表示するプロンプト文字列。省略した場合、プロンプトは表示されない。
- コマンドラインでキーワードをクリックできる様になったバージョンからは "[(Y)es / (N)o]" のような形で記述しておくとクリックに対応できる
- 戻り値
- ユーザが入力したキーワードを示す文字列。キーワードを入力せずに[Enter]を押した場合は、nil。この関数は、キーワードを定義する initget 関数を事前に呼び出さなかった場合も、nil を返す。
- ユーザが有効なキーワード以外の値を入力した場合、警告メッセージを表示し、再度入力を求める。
- サンプル
- 次の例では、初めの initget 関数の呼び出しでキーワードのリスト(Yes と No)を設定すると同時に、次の getkword 関数呼び出しでの null 入力を禁止している(bits 引数の値が 1)。
(initget 1 "Yes No") nil (setq x (getkword "よろしいですか?[はい(Y)/いいえ(N)] ")) よろしいですか?[はい(Y)/いいえ(N)]Y "Yes" ; 次の例は、getkword 関数に対する応答で、ユーザが無効な入力を行ったときにどうなるかを示している。 (initget 1 "Yes No") nil (setq x (getkword "よろしいですか?[はい(Y)/いいえ(N)] ")) よろしいですか?[はい(Y)/いいえ(N)] x そのようなオプション キーワードはありません. よろしいですか?[はい(Y)/いいえ(N)]Y "Yes" !x "Yes" ; ユーザの応答が、先の initget 関数で定義されたキーワードの 1 つではなかったため、警告メッセージを表示した後に、msg 引数で与えられた文字列を使用して、ユーザに再度プロンプトが表示された。 (initget 1 "Yes No") nil (setq x (getkword "よろしいですか?[はい(Y)/いいえ(N)] ")) よろしいですか?[はい(Y)/いいえ(N)] Y そのようなオプション キーワードはありません. よろしいですか?[はい(Y)/いいえ(N)]Y "Yes" ; initget は全角文字をキーワードとして指定できないので、全角を受け入れる場合は initget を使わずに自前でキーワードをチェックする必要がある。
関連事項
- initget 関数