2009-04-08 4 views
2

문자열 및 열거 형의 두 가지 추가 속성이있는 사용자 지정 TAction 형식을 만들었습니다.Delphi 2009 - 개체 검사기의 사용자 지정 열거 형 속성

문자열 값이 개체 관리자에서 잘 표시되지만 열거 형이 전혀 나타나지 않습니다. 개체 관리자에서 드롭 다운 속성 값으로 표시 할 사용자 지정 열거 형을 얻으려면 어떻게해야합니까?

답변

11

열거 형 속성은 기본 TEnumProperty 클래스를 사용하여 속성을 편집해야합니다.

RTTI 정보를 찾을 수없는 것 같습니다. 열거 형은 어디에 정의되어 있습니까? 구성 요소와 같은 파일에 있습니까?

그리고 당신은 같은 사용자 정의 값으로 열거 형을 사용하십시오

TMyEnum = (aA = 1, aB = 3); 

설명 : 값 열거를 정의하면, 당신은 미리 정의 된 상수 부분 범위 타입을 만들 수 있습니다.

type 
    TMyEnum = 1..3; 
const 
    aA : TMyEnum = 1; 
    aB : TMyEnum = 3; 

이 같은 이상한 상황으로 이어질 수 : SUCC (AA) AB하지만 2 의 정보는 도움에 (언어 가이드) 단일 유형 [열거 유형되지 않도록 위는 것으로 해석 할 수있다 "명시 적으로 지정된 명령과 함께".

이것은 문제의 원인 일 수 있습니다.

그 밖의 모든 것이 실패하면 고유 한 속성 편집기를 만들 수 있습니다. 오브젝트 인스펙터에서 enum 속성을 변경할 수 있습니다. 일반적으로 기본 TEnumProperty를 사용할 수 있습니다. 하지만 충분하지 않으면 자신을 굴릴 수 있습니다.

1 단계, 속성 편집기를 가져옵니다. 귀하의 경우 아마도 TEnumProperty (Unit DesignEditors)가 거의 변경되지 않을 것입니다.

2 단계, GetValue 및 SetValue 메서드가 올바르게 작동하는지 확인하십시오. 문자열을 열거 형 속성으로 변환하고 다시 변환해야합니다.

3 단계, 실제 특수 편집을 원할 경우 편집 방법을 재정의해야합니다.

4 단계, eeditor 속성이 올바른지 확인하십시오.

5 단계, RegisterPropertyEditor를 사용하여 속성 편집기를 등록하십시오.

자세한 내용은 구성 요소 작성자 안내서를 참조하십시오.

+0

안녕하세요, 감사합니다. 나는 사용자 정의 값으로 열거 형을 정의 했으므로 이것을 제거하고 컴파일러에서 값을 생성하도록했습니다. 그러나 나중에 참조 할 수 있도록 기본 개체 관리자의 열거 형 속성에 사용자 지정 값을 할당 할 수없는 이유를 알고 계십니까? – James

+0

사용자 지정 값을 할당하면 더 이상 열거되지 않습니다 (도움말 파일의 어딘가). –

+1

전체 설명을 추가했습니다. –