.NET
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic to the Top
- Bookmark
- Subscribe
- Printer Friendly Page
GetString with Keywords FATAL ERROR
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
Hi,
i encountered a problem, when I try to use GetString with Keywords
Dim optString As New PromptStringOptions("Zadaj nazov: ")
optString.Keywords.Add("Vypisat")
Dim resPrompt As PromptResult = ed.GetString(optString)
AutoCAD crashes with FATAL ERROR on the last line.
Solved! Go to Solution.
Re: GetString with Keywords FATAL ERROR
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
You need to use PromptKeywordOptions like this:
Dim optstring As New PromptKeywordOptions("Zadaj nazov: ")
optstring.Keywords.Add("Vypisat")
Dim resPrompt As PromptResult = ed.GetKeywords(optstring)Hope that helps.
Re: GetString with Keywords FATAL ERROR
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
You can't add keywords to Getstring method
But you might be want to use DefaultValue property
to get possibility for empty input
And also you always use Try.. Catch statement to
save your working time ![]()
See sample:
Public Sub testkwords()
Dim doc As Document = Autodesk.AutoCAD.ApplicationServices.Application.D ocumentManager.MdiActiveDocument
Dim db As Database = doc.Database
Dim ed As Editor = doc.Editor
Try
Dim optString As New PromptStringOptions("Zadaj nazov: ")
optString.UseDefaultValue = True
optString.AppendKeywordsToMessage = True
optString.DefaultValue = "Vypisat"
Dim resPrompt As PromptResult = ed.GetString(optString)
If resPrompt.Status <> PromptStatus.OK Then
Return
End If
Dim strRes As String = resPrompt.StringResult
MsgBox(strRes)
Catch ex As System.Exception
MsgBox(ex.Message + vbCrLf + ex.StackTrace)
Finally
End Try
End Sub
~'J'~
C6309D9E0751D165D0934D0621DFF27919
Re: GetString with Keywords FATAL ERROR
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
to Paulio: keyword prompt only allows to enter keyword, i want an user inputed string, or a keyword
to Hallex: Thanks for the workaround. That's strange, that PromptStringOptions has a Property Keywords and then throws an exception saying Keywords are not allowed.
I think that I will have to stick with this, but it's strange to have a Keyword in <> instead of [], very odd behavior. Whay if I wanted to have more than one keyword?
Re: GetString with Keywords FATAL ERROR
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
If you need to add more than one keyword
you have to use ed.getkword method, see examples,
hope you will be undrerstand how to use this functions,
feel free to adopt them to your needs:
Function PromptKeyWords(ByVal PromptStr As String, ByVal kwords As String(), ByVal deflt As String) As Boolean
Dim ed As Editor = Application.DocumentManager.MdiActiveDocument.Edit or
Dim prOpt As PromptKeywordOptions = New PromptKeywordOptions(PromptStr)
Dim prRes As PromptResult = Nothing
prOpt.AppendKeywordsToMessage = True
For Each wd As String In kwords
prOpt.Keywords.Add(wd)
Next
prOpt.Keywords.Default = deflt
prOpt.SetMessageAndKeywords(PromptStr, "[Yes/No]")
prOpt.Keywords.Add("[")
prOpt.Keywords.Add("[")
prOpt.AppendKeywordsToMessage = True
prRes = ed.GetKeywords(prOpt)
If prRes.Status = PromptStatus.Cancel Then
MsgBox("Error: user cancelled")
Return False
Else
MsgBox(prRes.StringResult)
Return True
End If
End Function
Public Shared Function GetKwordOut(ByVal ed As Editor, ByVal msg As String, ByVal kwords As String()) As String
Dim pko As New PromptKeywordOptions(vbLf + msg)
pko.AllowNone = True
For Each itm As String In kwords
pko.Keywords.Add(itm)
Next
pko.Keywords.Default = kwords.GetValue(kwords.Length - 1).ToString()
Dim pkr As PromptResult = ed.GetKeywords(pko)
If pkr.Status <> PromptStatus.OK Then
Return String.Empty
Else
Return pkr.StringResult
End If
End Function
~'J'~
C6309D9E0751D165D0934D0621DFF27919
Re: GetString with Keywords FATAL ERROR
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
Hallex, you didn't understand what I meat.
I want a string prompt, i want user to be able to enter a string, any string and also be able to choose a keyword for some action. But I guess it's not possible.
Re: GetString with Keywords FATAL ERROR
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
Sorry, Matus
I have disagreed completely
You didn't understand how to use the function I posted
Please, try complete solution:
<CommandMethod("MatusBrilt", "matus", CommandFlags.Modal)> _
Public Sub SampleTest()
Dim ed As Editor = Application.DocumentManager.MdiActiveDocument.Edit or
Dim kwords As String() = {"Rectangle", "Circle", "Ellipse", "Squiggle"}
Dim strout As String = GetKwordOut(ed, vbLf + "Choose a Shape Type or Enter Another Type You Want: ", kwords)
ed.WriteMessage(vbLf + "{0}", strout)
End Sub
Public Shared Function GetKwordOut(ByVal ed As Editor, ByVal msg As String, ByVal kwords As String()) As String
Dim pko As New PromptKeywordOptions(vbLf + msg)
pko.AllowNone = True
pko.AllowArbitraryInput = True
For Each itm As String In kwords
pko.Keywords.Add(itm)
Next
pko.Keywords.Default = kwords.GetValue(kwords.Length - 1).ToString()
Dim pkr As PromptResult = ed.GetKeywords(pko)
If pkr.Status <> PromptStatus.OK Then
Return String.Empty
Else
Return pkr.StringResult
End If
End Function
~'J'~
C6309D9E0751D165D0934D0621DFF27919
Re: GetString with Keywords FATAL ERROR
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
If I enter anything else in the eg.GetKeywords prompt, I get an error "Invalid option keyword." and I am prompted again.
I use AutoCAD 2012.
Re: GetString with Keywords FATAL ERROR
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
You have to copy code I posted in the last post because I've added
ArbitaryInput=True in this function
Then it will be work as you need, see what I have a got after running the code
(tested on 2010th) :
Command: MATUS Choose a Shape Type or Enter Another Type You Want [Rectangle/Circle/Ellipse/Squiggle] <Squiggle>: Trapezoid
Trapezoid
Command:
~'J'~
C6309D9E0751D165D0934D0621DFF27919
Re: GetString with Keywords FATAL ERROR
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
oh, finally ![]()
thank you very much, I missed that one


