我在Click事件中有一个ToolStripButton作为发件人。我需要能够将发送者类型转换为Toolstripbutton并将其标记属性检索为整数。我想,我在以下代码中这样做。我的程序编译成功,但它引发了无效的类型转换运行时错误。
theTool := TMakerTool((sender as ToolStripButton).tag);
TMakerTool = public enum
theTool:TMakerTool
我看到tag属性是一个包含标记为字符串的对象。
那么,我做错了什么?
谢谢。
答案 0 :(得分:2)
有an Enum
type提供a Parse method(从{4}开始也是a TryParse method)。
虽然我不熟悉Delphi,但我认为您可以执行以下操作:
TMakerTool(Enum.Parse(typeof(TMakerTool), (sender as ToolStripButton).tag.ToString(), true));
参考链接: http://theroadtodelphi.wordpress.com/2009/10/27/convert-string-to-enum-using-delphi-prism/
答案 1 :(得分:0)
我试着跟随Wily博士的Apprentice的回答,但它没有用。但是,他确实帮助我更好地理解它。
如果有人感兴趣,我可以通过执行以下操作来解决错误。
theTool := TMakerTool(int32.Parse((sender as ToolStripButton).tag.ToString));