프로그래밍이 주업은 아니지만 밥줄을 위해 어느 정도의 컴퓨터 자동화가 필요하여 프로그래밍을 독학하던 중 볼랜드 c++과 비주얼 베이식 6을 넘어 델파이에 매진하고 있습니다.
꼭 필요한 기능만 간단하게 구현해 쓰다 보니 프로그래밍 일반에 대한 깊은 지식이 부족하고 엑셀 매크로 정도보다 약간 위의 수준에 머물고 있습니다.
델파이 200x 시험판으로 근근이 연명하다가 윈도우즈 비스타를 쓰게 된 마당에 델파이 새 버전도 나왔겠다 백 만원 조금 넘는 가격이 업무 전체 비용에 비해 그리 큰 금액은 아니기 때문에 2009를 선뜻 구매해 쓰고 있습니다.
프로모션 어쩌구 해서 좀 싸게 파나 보다 했는데 주문하고 좀 알아 보니 그다지 싼 가격도 아니더군요.
게다가 슬슬 쓰다 보니 내가 마루타가 된 건 아닌가 하는 느낌을 종종 갖습니다.
2007로 작업해 둔 것들 가운데 수정 없이 제대로 실행되는 게 적어도 제 제작물들 가운데에는 거의 없습니다.
수정이 필요한 부분들 가운데 상당수는 델파이의 버그로 의심되지만 제 실력이 미천하여 어디가서 선뜻 외쳐 보지도 못 하고 있습니다.
아무튼 2007이 그립지만 이제 와서야 죽은 자식 불x 만지기죠.
오늘 저를 귀찮게 한 건 2009의 소스 브레이크포인트 기능입니다.
2007까지는 코드 에디터의 왼쪽 거터에 파란 도트로 소스 브레이크포인트를 지정할 수 있게 되어 있지만 2009에는 그런 게 안 나오더군요.
그거야 뭐 중요한 기능은 아니고 대부분 어디에 찍어야 하는지 분명하니까 그냥 넘어가겠는데요.
브레이크포인트를 찍어도 빨간 도트가 안 나타나서 첨엔 좀 헤맸습니다.
이게 찍힌 건지 뭔지 나중에 보니 해당 줄이 보라색으로 변하더군요.
그게 소스 브레이크포인트의 흔적이었습니다.
거트에는 아무 표시도 남지 않습니다.
문제는 이런 내용이 도움말에 전혀 업데이트되어 있지 않다는 겁니다.
온라인 도움말에는 여전히 2007까지의 내용만 있습니다.
2009를 설치할 때 오프라인 도큐먼트를 도움말로 쓸 것인지 온라인 헬프를 도움말로 쓸 것인지 고르는 옵션이 있었던 거 같은데 나중에 설정을 바꿀 수 있고 온라인 헬프가 업-투-데이트 버전이라고 하길래 당연히 온라인 헬프를 골랐습니다.
다시 오프라인 도큐먼트로 바꾸려고 보니 어떻게 하는 건지 암만 찾아 봐도 모르겠네요.
암튼 이것도 중요한 건 아니고 제가 답답한 건 다음의 내용입니다.
2007에서는 대부분 아시다시피 주석문에도 브레이크포인트가 걸렸습니다.
프로시저로 구성된 특정 이벤트 자체가 발생하는지 여부를 확인하기 위해서는 프로시저 내용을 아직 작성하기 전에 프로시저를 만들어 놓고 begin과 end 사이에 //로 주석 처리만 하고 해당 프로시저의 내용을 작성할 때가 될 때까지 일단 두는 경우가 흔합니다.
근데 2009에서 이 작업을 죽어라 해 봤더니 이벤트에서 브레이크포인트가 안 걸리는 겁니다.
이벤트가 왜 안 걸리나 한참을 상관도 없는 소스들을 봤지만 2007에서 쓰던 것과 같은 내용들이었죠.
속으로 이상하다, 이상하다를 되뇌다가 혹시 주석은 건너 뛰나 싶어서 다음과 같은 변수 선언을 했습니다.
procedure TForm1.FormCreate(Sender: TObject);
var
i: Cardinal;
begin
i := 1; -> 브레이크포인트
end;
그리고 본문에 브레이크포인트를 걸었습니다.
근데 이걸 건너 뛰며 브레이크포인트가 먹지 않았습니다.
그럼 뭐지, 또 한참을 헤매다가 혹시나 하여 다음과 같이 해 봤더니 걸리더군요.
procedure TForm1.FormCreate(Sender: TObject);
var
i: Cardinal;
begin
i := 1;
Form1.Caption := IntToStr(i);
end;
위와 같이 Form1.Caption := IntToStr(i); 구문을 넣으면 안 걸리던 그 앞 줄에서도 걸립니다.
변수 선언을 private로 빼면 Form1.Caption := IntToStr(i); 구문이 없어도 i := 1; 구문에서 브레이크가 작동합니다.
뭐가 잘못됐다고 여겨지는 건 초보인 저만의 착각일는지 ...
|
원효 대사의 깨달음을 머릿속에 생각하시며 한동안 베타테스트 한다는 기분으로 쓰시면 많은 도움이 되리라 믿습니다. ^^
'소프트웨어는 완제품이 아니라 반제품이다.'라는 명언이 생각나는군요.