다름이 아니라..API함수를 사용하면..선언되었음에도 불구하고..
API함수를 아무것도 쓸수가 없습니다..
API함수는 델파이 자체내에 저장되어 있는건가요?
아니면 따로 다운을 받아서 저장을 해야하나요?
참고로 전 델파이 5.0을 사용하고 있습니다.
델파이 시작한지 얼마안되었는데 책에는 그런 상세한 부분까지도
설명이 되어있지를않아서..
이렇게 질문을 합니다..
또 한가지는요..
그러니깐..버튼을 클릭하면..OpenDialog박스가 뜨게끔 할려고 합니다.
폼에다가 생성 안하고.
왜 버튼에다가 메시지 창 뜨면 확인 누르면..
폼이 뜨고 뭐 그런식으로..
폼에다가 컴포넌트를 가져다가 지정해서 주는게 아니다보니
따로 type구문에다가..
OpenDialog1: TOpenDialog;
이렇게 선언을 해줍니다.
그리고 나서 F9번 눌러서 run시키면
이런 에러가 뜹니다.
"Field Form1.OpenDialog1 does not have a corresponding component. remove the declaration?"
이렇게요..
폼에다가 OpenDialog를 갖다 놓지 않고..저렇게 선언만 하면
저런 에러가 뜹니다.
그치만..폼에다가 opendialog컴포넌트를 가져다놓으면..
잘 돌아갑니다.
이런 현상은 왜 생기나요??
님께서 고민 하시는 부분은 저와는 반대의 경우 이군여..
한참 델파이 하다가 VC++로 플젝하나 해보니.. 님과 같은 질문이 눈에 들어 오는 군여..
<<<==== 이 부분은.. c Language 에서 #include 에 해당하는 델파이의 uses 부분에 사용하고자 하는 WindowAPI 화일이 지정 되었냐의 여부라고 말씀 드릴수 있는데여.. 뭐 그냥 빈 프로젝트 하나 맹글고.. 코드에디트 창에서.. ctrl 키를 누른 상태로 uses Windows, Messages.... 라고 되어있는 부분에 마우스를 가져가 보시면 밑줄쫙 쳐진 문자로 변경되는데여.. 그 상태에서 마우스 왼쪽 버튼을 클릭하면.. Windows.pas 화일이 열림니다.. 그 화일을 잘 보시면 뭐 API가 보이겠죠... 즉.. uses 절에 쓰고자 하는 API가 있는 pas화일명을 추가 해야 API를 쓸수 있겠다는 거죠머...~
VC++와는 조금 틀리다고 생각 하심 됩니다...
즉.. 델파이는 막강한 GUI Designer를 중심으로 코드가 생성되는 관계로 VC에서 처럼 객체의 선언 만으로 사용하려면.. 그 선언의 위치가.. private 나 public정도에 위치해 있어야 하구여.. 컴포넌트를 폼에 올려놔야 하는 이유는
컴포넌트의 parent Form이 결정되는 시기가 Designe시에 폼위에 올려 놓으므로서 내부적으로 (.dfm화일에)추가가 되기 때문입니다..
요약 하자면.. 님께서 아래와 같은 에러를 만나 셨다면..
사용하고자 하는 컴포넌트가 dfm화일에 등록이 안되어 있고 사용자 정의 영역이 아닌 델파이 툴이 사용하는 영역에 직접 선언 하셨기 때문이라는 거지여..
흠.. 너무 나섰나? 암튼 즐델 하셔염...