Q&A

  • 철저공략 델파이 7 의 본문 중에서....
P125에 보면 Result에 관해서 Note를 해놓으셨는데요,
거기에 보면 Result는 값을 반환만 하고 종결되지 않는 다고 하고,
이어서 함수 이름 자체를 가지고 리턴값으로 사용할 수 있다고 했는데
제가 궁굼한 것은
function test(a: integer ) : integer;
begin
  if a = 1 then Result := 1;  //<= (1)
  else test := -1;  // <==(2)

  case a of  // <== (3)
    0 : showmessage('영이다');
    1 : showmessage('일이다');
    2 : showmessage('이이다');
  end;
end;
위과 같은 코드에서 (1)과 같이 Result에 1을 넣으면 반환값이 넘어가고 (3)의 case 구문이 실행된후 종료 되는 건가요?

그리고 만일 (2)의 문장이 실행되면 (1)과 마찬가지로 -1이 반환되긴 하지만 (3)은 실행이 안되고 바로 종료되는 건가요?

Return 문과 같이 값을 반환하고 그 시점에서 종료되는 기능을 찾고 잇는데요,
어떻게 해야 할지 좀....

그리고 result의 형은 그것에 대입되는 값에 따라서 결정이 되는 건지요?



2  COMMENTS
  • Profile
    SEN 2003.10.10 01:54


    a 가 1인경우와 그렇지 않은경우, 모두 case 문은 실행됩니다..
    Result 값을 넘겨줬다고해서.. 해당 function 을종료해버리지는 않습니다..
    만약에 a 가 1 인경우에 Result 값을 넘겨주구 해당 function 을 빠져나오고 싶으시다면

    function test(a: integer ) : integer;
    begin
      if a = 1 then begin
        Result := 1;  
        exit;
      end
      else begin
        test := -1;  // <==(2)
      end;
      case a of  // <== (3)
        0 : showmessage('영이다');
        1 : showmessage('일이다');
        2 : showmessage('이이다');
      end;
    end;

    이렇게 하시면 a 가 1 인경우에는 Result 값을 넘겨주고 해당 function 을 끝나게 되고, a 가 1 이 아닌경우에는 result 값을 넘겨주고, 밑에 case 문도 실행하게 됩니다.
  • Profile
    델파이Go! 2003.10.10 02:24
    • K모씨
      2003.10.10 20:08
      우선 파스칼 책을 참고하시는게 좋을 것 같습니다. 간단히 말씀드리면 Program XXXXXX uses &nbs...
    • 박희순
      2003.10.11 18:29
      답변 감사드립니다.. ^^ 님께서 말씀해주신것 처럼 프로젝트 소스를 수정해야 되더군요.. 하루종일 두눈 ...
    • 임형호
      2003.10.11 02:11
      중단된지 아주아주 오래됐구요. 음... 예전에... 제가 학생일때 세미나 참가자한테 무료로 주었던 기억...
    • 최병구
    • 2003.10.10 02:47
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 델파이Go!
    • 2003.10.10 01:19
    • 2 COMMENTS
    • /
    • 1 LIKES
    • SEN
      2003.10.10 01:54
      a 가 1인경우와 그렇지 않은경우, 모두 case 문은 실행됩니다.. Result 값을 넘겨줬다고해서.. 해당 f...
    • 델파이Go!
      2003.10.10 02:24
    • 정성헌
    • 2003.10.09 23:32
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김기원
      2003.10.10 06:28
      다를수도 있지만.. 비슷한 경우가 있어서요... ^^ 예전에 Oracle에 접속 하려고 할때 프로그램(실행파일...
    • 이중철
      2003.10.10 00:58
      일반적인 Linked List라면 처리에 고심하시지 말고 TList를 사용해서 써보세요 저도 다 바꾸었어요...
    • 델파이Go!
      2003.10.10 01:48
      죄송하지만 간단한 샘플 코드라도 좀 올려주시면 안될까요? 헬프 봤는데 어떻게 사용하는지 잘 모르겠네요...
    • 델파이Go!
      2003.10.10 02:47
      관련 자료 찾다보니까 Tlist에 대해서 설명한 게 있어서 올립니다. 그리고 예전에 파워러브 델파이 라는...
    • 최용일
      2003.10.10 00:15
      안녕하세요. 최용일입니다. 레코드내에 레코드를 포함해서 정의할 수 있구요... 정의하는 표현식이 잘못...
    • 델파이Go!
      2003.10.10 00:41
    • 김정모
    • 2003.10.09 20:16
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 남혜영
      2003.10.09 20:28
      select  tt.store_cd, tt.midd_cd, tt.midd_name, floor(tt.b_amt/1000), floor(tt.c_amt/1000) ...
    • 김정모
      2003.10.09 20:58
      남혜영님 답변 감사합니다. 덕분에 잘 해결 됐습니다. 근데 한가지만 더 질문 드릴께요.. 퀵리포트의 QR...
    • 남혜영
      2003.10.09 21:05
      질문이 10000을 10,000으로 쓰고 싶다는 건가요?? QRExpr에 보시면 Expression이 있습니다. 이곳에 다음...
    • 김정모
      2003.10.09 21:13
      답변감사합니다.. 더 열씨미 노력해도 저도 님처럼 남에게 도움을 줄 수 있는 고소가 되고 싶네요
    • 남혜영
    • 2003.10.09 19:52
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 열심히
      2003.10.10 19:36
      직접 변화된 값을 넣어보시지요.. 제가 해본건 아니지만 다른분이 짜신 코드부분에 그렇게 룩업을 걸...
    • 이철승
    • 2003.10.09 19:27
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 별볼일없는
      2003.10.09 20:28
      질문을 잘못 이해하고 있는건지 모르겠지만... Fixedrows를  잡아 주시면 Fixed 컬럼은...
    • 이철승
      2003.10.09 20:45
      스크롤 해도..맨위의 위의 그림의 제목이 있는 로우가..항상 보여야되는건데여. 그러니깐..첫번째 로...
    • 별볼일없는
      2003.10.10 19:35
      ^^; 그러니깐 제목 row가 항상 고정이 되어야 된다는 말씀아니신가요? grid 속성에 Fixedrows 가있...
    • [ROOKIE]
      2003.10.09 23:29
      할일이 없어서 --; 해봤는데.. 진짜 많이 늘어나네요. 위저드로 만들면 Uses 절에 포함시키는게 이 두개...
    • YYpBD
      2003.10.10 01:59
      ShowMessage 따라가보시면 TMessageForm을 내부에서 생성시킵니다. 이미 TForm을 쓰고 있는거죠 ^^; ...
    • 최용일
      2003.10.10 00:19
      안녕하세요. 최용일입니다. 둘 다 똑같은 DLL이구 차이점이라면 OCX는 기본적으로 확장자를 .ocx를 쓰구...
    • 조장선
    • 2003.10.09 03:36
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 김경록
      2003.10.11 06:44
      oracle 버젼이 어떤지 알고 싶군요.. 해결 방법은    1.  Inline view를 만들어서...
    • 별볼일없는
      2003.10.09 20:22
      답변이 될지 모르겠지만... 제가 잔머리는 좀 쓰거든요 참고 하시길... 그리드를 DBGrid만 아니면...
    • 최용일
      2003.10.10 00:26
      안녕하세요. 최용일입니다. 아래와 같이 해보세요. var     S: string;  ...
    • 오범석
    • 2003.10.09 01:44
    • 1 COMMENTS
    • /
    • 0 LIKES
    • [ROOKIE]
      2003.10.09 23:17
      트레이 아이콘을 사용할때 X 버튼을 누르면 프로그램이 종료되지 않고, 트레이 아이콘으로 숨길때 이런 현...
    • aaaa
    • 2003.10.09 01:44
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 임준희
    • 2003.10.09 00:50
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 송영식
    • 2003.10.09 00:05
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 전계진
      2003.10.09 18:51
      Open;  ----->  ExecSQL; 으로 써보세요
    • 송영식
      2003.10.09 21:58
      Delete가 안되는 문제가 아니고여... Delete문은 제대로 실행되는데여, Table이 차지하고 잇는 하드 용량...
    • [*^^*]
      2003.10.11 04:38
      Pack을 해주셔야되요.. delete만 한다고 용량은 줄지 않거든요..
    • 임운선
    • 2003.10.08 23:55
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이추형
      2004.01.09 19:46
      이벤트 도는것이 버튼을 클릭할때인것 같은데요.. TForm에 Key입력받는 이벤트가 따로 있습니다. 그곳에 ...