Setfunhelp

提供:GizmoLabs - だいたい CAD LISP なサイト
2009年11月13日 (金) 00:52時点におけるGizmon (トーク | 投稿記録)による版 (ページの作成: ; 構文 : (setfunhelp ''c:fname'' [''helpfile'' [''topic'' [''command'']]]) ; 機能 : ユーザ定義コマンドをヘルプ機能付きで登録し、ユーザからその…)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
構文
(setfunhelp c:fname [helpfile [topic [command]]])


機能
ユーザ定義コマンドをヘルプ機能付きで登録し、ユーザからそのコマンドのヘルプが要求されたとき、該当するヘルプ ファイルとトピックを呼び出す。
* IJCAD ではうまく動作していない。
引数
  • c:fname : ユーザ定義コマンド(C:XXX 関数)を指定する文字列。 接頭の c: を含める必要がある。
  • helpfile : ヘルプ ファイルの名前を示す文字列。この引数では、ファイル拡張子は必要ない。ファイル拡張子を指定すると、指定した名前のファイルのみが検索され、拡張子を指定しないと、拡張子.chm のファイルを探す。
  • topic : ヘルプ トピック ID を指定する文字列。拡張子を付けずに CHM ファイル内のトピックを呼び出すと、拡張子.htm を追加する。
  • command : [ヘルプ]ウィンドウの初期状態を指定する文字列。Windows SDK で定義されている HtmlHelp()関数 uCommand 引数で使用される文字列にすることもできる。HH_ALINK_LOOKUP または HH_DISPLAY_TOPIC を指定することができる。
戻り値
成功した場合は c:fname 引数で渡した文字列。それ以外の場合は nil。


サンプル
setfunhelp 関数の使用法を示した次の例では、簡単な関数を定義し、次に setfunhelp 関数を実行して、その関数に AutoCAD のヘルプ ファイル(acad.chm)の circle トピックを関連付けている。
(defun c:foo ()
  (getstring "F1 を押してください. foo コマンドのヘルプが表示されます:")
)
(setfunhelp "c:test" "acad_acr.chm" "entget")
このコードをロードし、foo コマンドを起動して[F1]を押すと、circle トピックが表示される。
この例は動作は実用的ではない。実際には、独自のヘルプ ファイルを作成し、そのヘルプ ファイルおよびトピックを、独自に作成した関数に関連付けることになる。
次に、test という名前の関数を定義する。
(defun c:test()(getstring "¥nTEST: " )(princ))
C:TEST
この関数を、文字列 "line" を使用してヘルプ呼び出しに関連付ける。
(setfunhelp "c:test" "acad_acr.chm" "line")
"c:test"
test コマンドを起動し、プロンプトに対して[F1]を押すと、AutoCAD の LINE[線分]コマンドのヘルプ トピックが表示される。
  • 注: defun 関数を使用して C:XXX 関数を定義すると、setfunhelp 関数で登録した関数名が除去される(存在する場合)。 このため、まず defun 関数を呼び出してユーザ定義コマンドを定義し、次に setfunhelp 関数を呼び出さなければならない。

関連事項