2011-11-23 3 views
0

나는 Click 이벤트 내에서 보낸 사람으로 ToolStripButton을 가지고 있습니다. 보낸 사람을 Toolstripbutton으로 형변환하고 태그 속성을 정수로 검색 할 수 있어야합니다. 나는 다음 코드에서 그렇게하고 있다고 생각한다. 내 프로그램이 성공적으로 컴파일되지만 잘못된 유형 변환 런타임 오류가 발생합니다.발신자를 유형 변환하는 방법은 무엇입니까?

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

TMakerTool = public enum 

theTool:TMakerTool 

태그 속성이 태그를 문자열로 포함하는 개체임을 확인했습니다.

그래서 내가 뭘 잘못하고 있니?

감사합니다.

+0

발신자가 실제로 'ToolStripButton'인지 확인 했습니까? –

+0

예, ToolStripButton 인 것으로 가정합니다. – ThN

답변

0

나는 닥터 와일리의 견습생의 답변을 따라하려고하지만, 작동하지 않았다. 그러나 그는 더 잘 이해할 수 있도록 도와주었습니다.

관심있는 사람이라면 다음을 수행하여 오류를 해결할 수있었습니다.

theTool := TMakerTool(int32.Parse((sender as ToolStripButton).tag.ToString)); 
2

a Parse method (v4에서 a TryParse method)을 제공하는 an Enum type이 있습니다.

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

변경 사항을 적용하여 TMakertool을 객체로 인스턴스화하도록 요청했습니다. – ThN

+0

TMakerTool을 클래스로 처리합니다. 왜? – ThN