Q&A

  • procedure 내의 Result ??

델파이 컴포넌트 소스보다가 이상한게 있어서 질문하는데요..

procedure 내에 변수로 Result를 잡은것도 아닌데 Result를 써도 되나요?

Result는 function에서나 되돌림값으로 쓰는게 아닌가요?

그럼 procedure 내에서 쓰는 Result 값은 누가 가져가며,

어떻게 활용할수 있는지요?

참고) TCustomComboBox.WndProc
3  COMMENTS
  • Profile
    장태원 2003.07.17 02:43
    procedure 의 Result 는 없습니다.

    다만 비슷하게 사용이 가능하죠.

    또한 Function 은 Result 반환값이 하나 밖에 없습니다.

    Function ABC : integer;
    Begin
         ABC := 1;   // Result := 1;
    End;

    위와 같이 Result 는 함수명과 같이 사용가능합니다.

    procedure 은 저같은 경우 크게 두가지 경우 사용합니다.

    반환값이 필요한 경우, 없는 겨우.

    procedure ABC ( var A,B,C : String);    ㄱ

    procedure ABC( A,B,C : String);          ㄴ

    ㄱ 과 ㄴ 에서와 같이 차이가 존재합니다.

    ㄱ같은 경우는 A,B,C 를 변수 자체로 반환하여 사용가능하며 호출 메소드 안에 위와 같은 변수들이 정의 되어 있어야 하며,

    ㄴ과 같은 경우는 값이 반환되지 않습니다.

  • Profile
    남기섭 2003.07.17 19:01
    procedure 의 Result가 없다는건 알겠는데.. 그럼 procedure 내에서

    Result를 사용한건 어떻게 해석해야 되나요?

    분명히 변수로 선언한곳도 없는데 막 쓰더라니 깐요 ...

    못믿으시겠다면 제가 참고로 적어놓은 TCustomComboBox.WndProc부분을

    보시면 나와요..

    도데체 Result를 왜 procedure 내에서 썼는지 이해가 안되는 군요..

    아시는분 답변 부탁드립니다.

  • Profile
    sky 2003.07.18 20:35
    어디를 말씀하시는건지 자세히는 모르겠는데..
    델파이의 StdCtrls.pas에 있는 procedure TCustomCombo.WndProc(var Message: TMessage); 를 말씀하시는 건지요.
    그렇다면 그안의 Result는요,,
    위에 자세히 보시면 with Message do -> 이게 있자나여..
    그니까.. 사용한 Result 는 Message.Result 가 되는 거지요.
    델파이에서 보면 Message. 하고 좀 기둘리면 사용할 수 있는 프로퍼티라던지 메소드 등등.. 나오자나여...
    ^^