対象製品: IJCAD 2015 以降
ダイナミック入力がサポートされてから、Lisp の initget や VBA/.NET の Editor.GetKeywords()メソッド 等のキーワードリストは、角括弧 [] で囲むように仕様の変更がされており、丸括弧 () は使用できません。
以下に各言語のサンプルを示します。
VB.NET
Imports GrxCAD.ApplicationServices
Imports GrxCAD.EditorInput
Imports GrxCAD.Runtime
<CommandMethod("GETKEYWORDTEST")>
Public Sub GetKeywordTest()
Dim icDoc As Document = Application.DocumentManager.MdiActiveDocument
Dim icEd As Editor = icDoc.Editor
Dim pmtKeyOpt As New PromptKeywordOptions(vbCrLf + _
"オプションを指定[テスト(T)/サンプル(S)]", "Test Sample")
pmtKeyOpt.AllowNone = True
pmtKeyOpt.Keywords.Default = "Test"
Dim pmtKeyRes As PromptResult = icEd.GetKeywords(pmtKeyOpt)
If pmtKeyRes.Status = PromptStatus.OK Then
icEd.WriteMessage(vbCrLf + pmtKeyRes.StringResult)
End If
End Sub
C#
using GrxCAD.ApplicationServices;
using GrxCAD.EditorInput;
using GrxCAD.Runtime;
[CommandMethod("GETKEYWORDTEST")]
public void GetKeywordTest()
{
Document icDoc = Application.DocumentManager.MdiActiveDocument;
Editor icEd = icDoc.Editor;
PromptKeywordOptions pmtKeyOpt = new PromptKeywordOptions(
"\nオプションを指定[テスト(T)/サンプル(S)]",
"Test Sample");
pmtKeyOpt.AllowNone = true;
pmtKeyOpt.Keywords.Default = "Test";
PromptResult pmtKeyRes = icEd.GetKeywords(pmtKeyOpt);
if (pmtKeyRes.Status == PromptStatus.OK)
{
icEd.WriteMessage("\n" + pmtKeyRes.StringResult);
}
}
VBA
Public Sub GetKeywordTest()
On Error Resume Next
Call Utility.InitializeUserInput(0, "Test Sample")
Dim res As String
res = Utility.GetKeyword(vbCrLf + "オプションを指定[テスト(T)/サンプル(S)]:")
If Err Then
MsgBox Err.Description & "(" & Err.Number & ")"
Exit Sub
End If
Utility.Prompt res
End Sub
LISP
(defun C:GETKYEWORDTEST ( / res )
(initget 0 "Sample Test")
(setq res (getkword "\nオプションを指定[サンプル(S)/テスト(T)] : "))
(print res)
(princ)
)
※保存する際に、文字コードをマルチバイト文字(Shift_JISなど)に変更して保存してください。
IJCADではUnicodeに対応していません。
入力時にS,Tの場合と、_s,_sa,_sam...や_t,_te,_tesの場合に"Test"や"Sample"を返します。
※ LIPS や VBA の場合では : を最後につけなければ、コマンド起動時のメッセージに : が表示されません。
付けない場合 : コマンドラインに表示されるメッセージに : が表示されていない。
付けた場合 : コマンドラインに表示されるメッセージに : が表示されている。