Enumerated 타입에서 아무값도 넣어 주지 않을려면 어떻게 해야 하나요?
컴포넌트의 속성을 Enumerated 타입으로 만들었는데 아무값도 넣고 싶지 않은데 공백을 줄수가 없습니다.
그리고 한가지 더요
Enumerated 타입에서 값의 비교는 첨자로는 하지 못하나요?
예를 들면
TTEST = (FIRST, SECOND, THIRD); // DEGREE의 타입으로 선언
...
DEGREE : TTEST;
컴포넌트의 Enumerated 타입 속성(DEGREE) 에서 FIRST를 선택했다고 하면..
AA : TEST;
IF EDIT1.DEGREE = AA(1) THEN // 여기서 첨자 비교가 안됩니다.
어떤식으로 해야 좋을까요?
감사합니다...
> Enumerated 타입에서 아무값도 넣어 주지 않을려면 어떻게 해야 하나요?
>
> 컴포넌트의 속성을 Enumerated 타입으로 만들었는데 아무값도 넣고 싶지 않은데 공백을 줄수가 없습니다.
>
> 그리고 한가지 더요
>
> Enumerated 타입에서 값의 비교는 첨자로는 하지 못하나요?
>
> 예를 들면
>
> TTEST = (FIRST, SECOND, THIRD); // DEGREE의 타입으로 선언
> ...
> DEGREE : TTEST;
>
> 컴포넌트의 Enumerated 타입 속성(DEGREE) 에서 FIRST를 선택했다고 하면..
>
>
> AA : TEST;
>
> IF EDIT1.DEGREE = AA(1) THEN // 여기서 첨자 비교가 안됩니다.
>
>
> 어떤식으로 해야 좋을까요?
>
>
> 감사합니다...
>
안녕하세요~ 구창민입니다.
먼저 두번째 질문부터 답변드리겠습니다.
값의 비교를 첨자로 하시길 질문하셨는데요.
그 형으로 선언된 변수를 배열로 만드시면 됩니다.
사실, 그 형으로 선언된 변수는 그 값들 중 한가지만을 가지기 때문이죠.
그러니 첨자로 비교하려면, 그 변수를 배열로 선언하여 여러값을 가지게 해야죠.
예를 들어 써 보면,
Type TTest = (One, Tow, Three);
var AA:array[0..2] of Ttest;
i: integer;
begin
AA[0]:=One;
if AA[0]=One THEN ShowMessage('같다');
end;
이런 형태가 될거 같네요.
또는, 컴파일러가 내부적으로 숫자로 인식하기 때문에
이렇게 써도 될겁니다.
if TTest(0)=One then ...
으음.. 이해가 되셨나 모르겠습니다.
그리고, 첫번째 질문의 답은
아까도 말씀드렸지만, 그 형으로 선언된 변수는 그 값들 중 한가지만을 가집니다.
그런데 구지 아무내용도 대입되지 않게 하시겠다면,
변수선언만 달랑 해 두고 사용을 안하면 그렇게 되겠지요.
아니면.. 배열로 선언한 다음 첨자값을 없는것을 넣어 버리면 될거 같네요.
예를 들어 첨자값에 -1값 같은거요. ^^ (이래두 되나 몰겠네요.)
이런식으로
AA[0]=TTest(-1);
음.. 이런짓은 안해봤는데 될거 같습니다. ^^
그럼~ 즐거운 프로그래밍 되시길~