Q&A

  • 아주 초보적인질문입니다.
안녕하세요.^^
제가 델파이를 배우면서 다른 여러소스들이나 책에 있는 소스들을 보면서
많이 배우고 있는대요.요즘 와서 제가 자꾸 느끼는게 제가 하고 있는
명령어들이 구체적으로 뭘 할때 사용하는것인지에 대해서 많이 의문을
느끼고 궁금해 하고 있습니다...특히 가장 궁금한것들이 있는대요..
nil 과 handle 과 boolean 이라는것이 뭐에 제대로 쓰이는것인지를
아직 잘 모르겠거든요..
책이나 여기 검색을 해봤지만 역시나 너무 기초적인것인지 내용이
잘 없어서 그러는대 좀 자세하게 어디에 어떤명령어인지 가르쳐주시면
정말 감사드리겠습니다.^^
2  COMMENTS
  • Profile
    김경록 2002.04.13 20:46
    Nil은 쉽게 말하면, 없다는 의미입니다..
    뭐 어떻게 설명할 수 있는 것은 없구여..
    메모리에 대해서 Nil이라고 말하면,
    메모리를 해제하라는 의미로 받아 들이시면 되구여..
    어떤 함수나, 객체의 인수로 넘기게 될때에는,
    없는 존재를 준다고 생각하시면 되겠네여..
    즉, 참조할 필요가 없다는 뜻이겠져..


    음.. 그리구..
    Handle은 어떻게 구성되느냐고 하면요..
    어떤 객체가 선언된 후에 메모리에 Load 또는 생성될때..
    자세히 말해서, 객체가 Instance화 될때에..
    OS에서는 그 객체를 나타내는 일종의 순번을 부여하게 됩니다..
    특정 프로세서에도 마찬가지겠져?
    메모리에 상주하는 객체에 대해서는 모두 부여하게 되어 있습니다.
    객체(Object)는 아실테니..
    혹시나.. 해서..
    객체는 간단히 말해서,
    어떤 Action을 수행하는 루틴 + 저장공간(메모리)확보 루틴
    등으로 이루어진 집합체라고 생각하면 됩니다..
    객체끼리 연산은 당연히 객체안에서 어떤 Action을 수행하는
    루틴에 포함되어 있겠죠? 당연히..
    예를 들면, TForm.Create()라는 함수가 특정 Action을 수행하는
    루틴이라고 말할 수 있져.. 일명 생성자라고 명명하고 있는것이지만..
    어쨌든.. Handle은 특정 객체의 Instance에 대해서 OS가
    순번을 매겨놓은 거라 생각하시면 됩니다..

    음.. 그다음 뭐였더라..
    아하..
    Boolean이라는거여..
    이거 실제로는 0, -1 또는 0, 1이라는 값입니다..
    하지만, 재선언해서 True, False로 사용하는 것이지여..
    C/C++에서는 True/False 값을 0이면, False, 0이 아니면, True로
    규정하고 있지만,
    델파이는 아마.. 재확인이 필요하겠지만..
    0은 True,  -1이 아마 False로 규정되어 있을 겁니다..
    다시 말씀드리지만, True, False는 재선언된 값입니다..
    상수 말입니다..
    그리구, 활용은 확인될 내용이 2가지 경우로만 존재할때에
    사용하는 거라 생각하시면 되겠군요..
    다시 말해서, 맞다/맞지않다 라고 생각하시면 되겠군여..

    답이 되셨길..


  • Profile
    이민수 2002.04.13 13:02

    안녕하세요^^; 명령이라기보다는 언어 문법인데...
    nil은여 혹시 C하셨으면 널이라는거 아실텐데... 비어있다, 없다 머 그런
    뜻이구여... 예를들어
      btnOKClick(Button2); <- 요거는 Button2를 넘겨주는데
      btnOKClick(nil);  <- 요거는 아무것도 안넘어갑니다. 위의 코드에서는
    클릭이벤트에서 Button2라는걸로 딴 작업을 할 수 있지만, 아래에서는
    그럴필요 없느니까 그냥 NIL 만 넘겨준거구요...
    상당히 중요하고 자주 쓰이는 예약어...... nil^^ 닐니리야 닐리리~~

    Handle은 윈도우즈에서는 엄청 많은게 다 핸들입니다. 이게 정수형인지
    먼지 잘 모르겠는데 암튼 창에도 있고, 컨트롤에도 있고, 벼라별거에 다
    있는게 이 핸들이구여... 대개 API를 쓸 때 이 핸들을 먼저 얻어옵니다.
    핸들이 반환된다는 건 곧 해당 객체(?)가 존재한다는 거고 고로 그 핸들을
    가지고 필요한 작업을 할 수가 있죠. 파일을 처리하거나 캔버스에 그림을
    그리거나...

    그리고 Boolean은 참/거짓을 나타내는 자료형입니다. True/False를
    저장시킬 변수를 Boolean으로 선언하구여... API나 기타 용도를 위해
    호환되는 여러가지 변태적인, 아니 변종들을 갖고 있습니다. ByteBool이나
    머 그런거....

    ^^;