Как распечатать отправителя? - PullRequest
0 голосов
/ 23 ноября 2011

У меня ToolStripButton в качестве отправителя в событии щелчка.Мне нужно иметь возможность типизировать отправителя как Toolstripbutton и получить его свойство тега как целое число.Я думаю, я делаю это в следующем коде.Моя программа успешно компилируется, но выдает недопустимую ошибку времени выполнения typecast.

theTool := TMakerTool((sender as ToolStripButton).tag);

TMakerTool = public enum

theTool:TMakerTool

Я вижу, что свойство tag это объект, который содержит тег в виде строки.я делаю не так?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 23 ноября 2011

Существует Enum тип , который обеспечивает метод Parse (также метод TryParse с v4).

Хотя я не знаком с 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/

0 голосов
/ 23 ноября 2011

Я пытаюсь следовать ответу ученика доктора Вилли, но это не сработало. Однако он помог мне понять это лучше.

Если кому-то было интересно, я смог устранить ошибку, выполнив следующее.

theTool := TMakerTool(int32.Parse((sender as ToolStripButton).tag.ToString));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...