main.cpp main.h 가 있다고 한다면
메인폼은 UI이니 UI 관련 코드를 넣고
비지니스 로직이 있는 부분은 전부 클래스화 시켜서 따로
다른 소스로 빼내는 것이 좋습니다.
그런데, main.cpp 코드가 1만줄에 가까워지면
코드컴플리션이 고장나 먹지 않는 경우가 태반입니다.
7천여줄 넘어가도 이런 현상이 생기기도 하고요.
코드 컴플리션이 안되면 코딩이 시간이 더 걸리고 귀찮게 됩니다.
코드 컴플리션이 안되는 이유는 코드에 이상이 있어서 그런게 아니라
빌더 IDE 자체의 문제로 인한 경우가 대부분입니다.
이럴때 main.cpp를 2개로 분리하면 문제를 해결할 수 있습니다.
가령 TFormMain 폼 클래스를 main.cpp 에 코딩 해 왔다면
main_ext.cpp 같은 유닛을 만들어(폼이 아니라 유닛)
TFormMain의 메소드를 적당량 분리해서 넣고, 계속 코딩해 나가면 됩니다.
그러면 코드 컴플리션을 계속 사용할 수 있습니다.
물론 TFormMain 클래스의 헤더는 당연히 main.h 에만 있어야겠지요.
그런데 폼 내의 컨트롤과 연결된 핸들러를 옮기면
폼 에디팅 모드나 인스펙트에서 바로 접근이 안되는 문제가 있으니
그건 main.cpp에 두고
내용물만 옮기는 방법을 쓰거나, 핸들러가 아닌 메소드를 옮기는 것을 먼저 해야 합니다.
이건 간단하지만 의외로 모르시는 분들이 많아 올려둡니다.
빌더 6에서는 이런데 상위 버전은 몇만줄 넘어가도 코드컴플리션이 잘 먹나 모르겠군요.
|
#if
#if
이 문장 안에서 그런 일이 잦게 일어 납니다.
이 경우는 조건 컴파일을 제거해주고
컴파일 되지 않을 코드는 주석 처리해주면 됩니다.
#endif
#endif