Q&A

  • VC++에서 사용하는 union과 비숫한게 델파이에도 있나요?.. -내용무-
내용무
1  COMMENTS
  • Profile
    최용일 2002.01.14 20:18
    record에 case문을 쓰시면 됩니다. 델파이의 메세지 타입들을 보시면 모두 이러한 방식으로 되어 있습니다.

    아래는 messages유닛에서 발췌한 코드입니다. Msg란 필드는 고정되어 있구요 다음에 나오는 12바이트는 공용필드들입니다. 예를들면 WParam과 WParamLo/WParamHi는 공용해서 쓸수 있습니다. WParam에 값을 넣으면 WParamLo/WParamHi가 동시에 바뀌죠. 반대도 마찬가지구요...

    TMessage = packed record
        Msg: Cardinal;
        case Integer of
            0: (
                WParam: Longint;
                LParam: Longint;
                Result: Longint);
            1: (
                WParamLo: Word;
                WParamHi: Word;
                LParamLo: Word;
                LParamHi: Word;
                ResultLo: Word;
                ResultHi: Word);
      end;

    델파이에서 레코드의 공용필드들은 항상 맨 마지막에 있어야 합니다.

    ^^ 항상 즐코하세요...