C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[18334] Re:Re:Re:Re:Re: 순수 API함수 이용해서 플밍 할땐 어떻게 하는 거죠??
김백일 [cedar] 1326 읽음    2002-05-09 22:25
물어 볼게 있어요 님이 쓰신 글 :
: 정말 보면 볼수 록 이해가 안돼네요...
:
: ConSol 위자드 사용해서 플밍을 하려 하는데...
: clx라이브러리 포함 시켰죠...

VCL과 CLX의 클래스 계층 구조중 뼈대에 해당하는 핵심은 다음과 같습니다.

TObject -> TPersistent -> TComponent -> TControl -> TWinControl

이고요, 폼까지 가려면

-> TScrollingWinControl -> TCustomForm -> TForm

입니다.

여기서 TComponent 부터는 일반적인 클래스와는 다른
'컴포넌트'라는 개념이 도입됩니다.
즉, 빌더 메인 툴바의 대부분을 차지하는 컴포넌트 팔레트에 있는 아이콘들 말입니다.
이것들을 폼에 드롭해 놓기만 하면 이 클래스가 프로젝트에 자동으로 포함되고요,
VCL에서 기본 제공하는 컴포넌트가 아니라 서드파티에서 제공하는 컴포넌트라면
헤더파일도 자동으로 추가되고 자동으로 링크도 됩니다.
또한 폼 디자이너에서 수정 가능하며,
오브젝트 인스펙터에서 속성과 이벤트 핸들러를 지정할 수 있게 됩니다.
우리가 소스코드로만 알 수 있었던 클래스라는 것이
폼 위에서 눈으로 보이는 '컴포넌트'라는 직관적인 객체가 되는 것입니다.
단, 폼 위에 드롭해야지만 실제 기능을 수행하는 것이기 때문에,
폼이 없으면 TComponent 이하의 클래스들은 의미가 없습니다.

즉, 순수 WIN32 API함수만 사용하는 프로그램이라면
VCL이나 CLX(CLX는 WIN32 API를 쓸 때는 비추천)에서 쓸 수 있는 클래스는
TPersistent 단계까지라는 얘기지요.

: 이미지를 어떻게 불러 오나요???
: 밑에 설명에 TImage 이용한다고 하던데..
: 멤버 함수에 LoadImage같은거 없네요...

TImage 타입의 객체 Image1 컴포넌트가 폼 위에 있다고 하면,
오브젝트 인스펙터에서 Picture 속성을 클릭하신 후,
[...] 모양의 버튼을 누르시면 대화상자가 뜹니다.
[Load] 버튼을 눌러서 .bmp 파일을 지정하시면 됩니다.

이렇게 마우스 몇번의 클릭만으로 원하는 작업을 할 수 있지요.
코딩으로 구현하는 것도 물론 간편합니다.

Image1->Picture->LoadFromFile("C:\WINDOWS\구름.bmp");

후후... 허접한 MFC와는 달리 한 줄로 끝나지요.

: 메뉴는 어떻게 만들고...
:
: 폼이 없어면 아무 것도 못하는 것 같아요...

예, 빌더의 VCL의 강력한 기능을 쓰려면
역시 폼이 있어야만 합니다.
순수 API로만 코딩하려면 역시 API 함수만으로 프로그램을 짜야합니다.

순수 API 코딩은 윈도에서 시스템 프로그래밍을 하신다면 선택할 만 하지만,
사용자에게 편리한 인터페이스를 제공해야만 하는 일반적인 윈도 프로그래밍이라면
정말로 불편하고 엄청난 노가다입니다.

오늘부터 폼의 개념부터 시작해서 빌더를 제대로 공부해보세요.
제가 앞글에 소개한 BCB6 입문서도 괜찮습니다.
입문서 내용대로 실제 에디터를 작성해보는 실습을 해보시는 것도 좋을 겁니다.

: 너무 너무 혼동
:
: 전체 적이 개념이 안 잡히네요...
: M$제품에 너무 길들여져 있어서 그런지...
: 많이 이상하네요...
:

빌더/델파이의 이러한 VCL/CLX를 사용한 RAD 방식이 훨신 직관적입니다.
사실, 위에 쓴 VCL/CLX 클래스 계층 구조조차 몰라도 손쉽게 개발하실 수 있을 정도입니다.

M$ VC++의 MFC는 단지 API에 한꺼풀만 덧씌운 라이브러리에 불과하며,
Doc/View 모델과 같은 직관과는 동떨어진, 지나치게 어려운 개념을
프로그래머에게 강요하는 좋지않은 라이브러리입니다.

:
: 김백일 님이 쓰신 글 :
: : 물어 볼게 있어요 님이 쓰신 글 :
: : : 접한 지는 5일 정도 되었는데...
: : : 이제 까지 API와 MFC만 봐 왔기 때문에 많이 혼동 되네요...
: : : C++언어로 비쥬얼 하게 플밍 할 수 있다는게 MS 컴파일러와 차원이 다른것 같아요...
: : : C++ 언어가 아닌것 같아요...
: : : 비베 에 더 가깝네요..
: :
: : 비베처럼 RAD 프로그래밍을 하지만, 허접한 언어인 베이직 대신
: : ANSI C++을 가지고 개발을 한다고 보시면 됩니다.
: : 오히려 M$ VC++은 ANSI C++ 표준을 정확히 지키지 못하는 단점이 있습니다.
: : (6.0까지는요. VC++.NET은 많이 개선되었다고 하네요.)
: :
: : : 전혀 보지도 못했던 키워드도 있고...
: :
: : 빌더에서는 RAD를 위해 ANSI C++ 6개의 키워드를 추가했습니다.
: : 반면 VC++.NET에서 .NET 개발을 위한 만든 Managed C++은 14개나 추가했지만
: : 아직 RAD가 안됩니다. -_-;;
: :
: : : 이것도 비베 처럼 API 함수를 그냥 보조로 쓰고 그렇게 하나요???
: :
: : 예. 윈도 프로그램 개발에서는요.
: : 리눅스와의 크로스플랫폼 개발을 위한 CLX 프로그래밍에서는
: : QT API를 호출합니다.
: :
: : : 비베 같은 경우는 속도도 여러 가지 단점이 있죠...
: : : 빌더도 그런거 아닌가요/?????
: :
: : 비베같은 半 인터프리터 언어와는 비교를 거부합니다!
: : 컴파일러의 최적화 성능도 M$ VC++와 비슷합니다.
: : 어떤 부문에서는 빌더가 앞서고, 다른 부문에서는 VC++가 앞서고 그렇죠.
: : VC++ 같은 경우에는 디버그 버전이 릴리즈 버전보다 무지 많이 느리고,
: : 디버그 버전에서 아무 이상 없이 돌아가는 프로그램이 릴리즈 버전에 안 돌아가는 경우가 흔하지만,
: : (성능 향상만을 위해 불안정한 최적화를 한다는 얘기죠.)
: : 빌더의 경우는 그런 경우는 거의 없습니다.
: : 디버그 버전의 속도도 릴리즈 버전보다 그다지 떨어지지 않습니다.
: : 
: : : 순수 API를 이용한 플밍 개발이 가능한가요??
: :
: : 예. [File]-[New]-[Others...]에서 [Console Wizard]를 실행하신 후,
: : [Console Application]의 선택을 해제하시면,
: : main()대신 WinMain()이 생깁니다.
: :
: : : 메뉴도 못 불러 오로... 그림도 못 불러 오고..
: :
: : 이건 무슨 뜻인지요? 정확한 질문을...
: :
: : : 인터넷 검색 해 보니  6.0에 관한 책은 한권도 없더군요...
: : : 좋은 인터넷 강좌 없나요???
: : :
: : 공짜로 책을 구하고 싶으시다면,
: : C++Builder Resources에 볼랜드 코리아에서 만든 입문서와 개발자 안내서가 있습니다.
: : http://www.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_res&no=153
: : :
: : : 김백일 님이 쓰신 글 :
: : : : 물어 볼게 있어요 님이 쓰신 글 :
: : : : : 메뉴하고 다이얼 로그는 어디서 편집  하나요????
: : : : :
: : : :
: : : : 메뉴는 TMainMenu 컴포넌트를 폼에 놓은 후, 더블클릭하셔서 Menu Editor를 띄우시면 됩니다.
: : : : 그러나 TMainMenu 단독으로 쓰는 방법은 좋지 않고요,
: : : : TActionList나 TActionManager 등을 같이 쓰는 방법을 추천합니다.
: : : : 전에 제가 쓴 글을 참고 바랍니다.
: : : : http://www.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_qna&no=18120
: : : :
: : : : 다이얼로그는 폼과 동일한 겁니다. 단지 폼의 BorderStyle 속성에 bsDialog를 지정한 겁니다.
: : : : 폼 디자인 편집과 동일하게 해주면 됩니다.
: : : : 참고로, [File]-[New]-[Other...]에서 [Dialogs]탭을 누르시면
: : : : 예제 다이얼로그 들이 있습니다.
: : : : 이것을 바탕으로 수정해서 써도 좋습니다.
: : : :
: : : : : 그림 하나를 어떻게 불러 와야 할지 모르겠네요..
: : : :
: : : : 그림은 TImage 컴포넌트를 사용하면 됩니다.
: : : :
: : : : : ID라는 개념도 없고..
: : : :
: : : : 빌더에서는 그런 허접한 저수준의 개념을 사용하지 않습니다. ^^;
: : : :
: : : : : 빌더에 관한  좋은 책 없나요???
: : : : 
: : : : 게시판을 검색하시면 여러 책에 대한 추천이 나옵니다.
: : : :
: : : : : 이종빈 님이 쓰신 글 :
: : : : : : 보통 아이콘, 비트맵, 커서는 Image Editor에서 하면 됩니다..
: : : : : : Image Editor는 빌더 메뉴중 Tool에 보시면 Image Editor를 선택하면 됩니다..
: : : : : : 그럼..
: : : : : :
: : : : : :
: : : : : : 물어 볼게 있어요 님이 쓰신 글 :
: : : : : : : 비쥬얼 C++사용하다. 빌더를 사용 하게 되었는데..
: : : : : : : 리소스 편집 하는 것을 아무리 찾으려 해도
: : : : : : : 못 찾겠어요....
: : : : : : : 제발 좀 가르쳐 주세요....
: : : : : : :
: : : : : : : 리소스 파일 문법 도 익혀서 사용해야 하나요..??
: : : : : : : 아니면 리소스는 비쥬얼 c++에서 다른 작업은 빌더에서..??
: : : : : : : ..

+ -

관련 글 리스트
18303 리소스 편집은 어디 서 해야 하나요?? 물어 볼게 있어요 1100 2002/05/09
18311     Re:리소스 편집은 어디 서 해야 하나요?? 이종빈 1223 2002/05/09
18316         비쥬얼 c++과 많이 다르군요.그런데 물어 볼게 있어요 1093 2002/05/09
18319             Re:비쥬얼 c++와는 아키텍쳐와 설계 철학 자체가 다릅니다. 김백일 1303 2002/05/09
18328                 Re:Re: c++ 빌더 어렵 군요.. 물어 볼게 있어요 1399 2002/05/09
18330                     Re:Re:Re: c++ 빌더 쉽군요. ^_^ 김백일 1644 2002/05/09
18332                         Re:Re:Re:Re: 순수 API함수 이용해서 플밍 할땐 어떻게 하는 거죠?? 물어 볼게 있어요 1322 2002/05/09
18334                             Re:Re:Re:Re:Re: 순수 API함수 이용해서 플밍 할땐 어떻게 하는 거죠?? 김백일 1326 2002/05/09
18338                                 Re:Re:Re:Re:Re:Re: 답변 너무너무 감사.SAMS에서 나온 책 괜찮은가요?? 물어 볼게 있어요 1240 2002/05/10
18355                                     Re:Re:Re:Re:Re:Re:Re: 답변 너무너무 감사.SAMS에서 나온 책 괜찮은가요?? 김백일 1133 2002/05/10
18339                                     Re: SAMS책 정말 좋습니다. 김상구.패패루 1403 2002/05/10
18354                                         Re:Re: 모두들 답변 감사 해요.... 물어 볼게 있어요 1053 2002/05/10
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.