델파이 폼 파일(DFM) 로딩 버그

2010/08/28 13:48
며칠 전 짧은 일정으로 대만에 있는 고객사에 다녀왔습니다...
고객사의 공장에서 고객이 직접 요청하는 기능을 현장에서 바로 프로그래밍 해주고 돌아 왔는데...

급히 코딩하고 있는 와중에 기능 테스트를 하려고 간단한 데이터 가공 프로그램을 만들고 있었습니다.

아래 그림처럼 폼 위에 TButton 콤포넌트를 올려 놓고 버튼을 클릭하면 무언가 동작을 하도록 코딩을 했습니다.

사용자 삽입 이미지

코딩을 마치고 컴파일....!!
사용자 삽입 이미지

정상적으로 컴파일 완료가 되었고 바로 실행...!!

그런데 화면이 바로 안뜨고 한참을 기다리게 하더니 아래 그림처럼 Stack Overflow 에러를 내뱉어 버리네요...

사용자 삽입 이미지

"엇... 왜 이러지...?" 하면서 Break 버튼을 누르고 Call Stack을 살펴보니
사용자 삽입 이미지

DFM 파일에서 폼을 로딩하면서 먼가 오류가 발생한것 같더군요...

버튼 하나 밖에 없는 폼이 왜 로딩하면서 에러가 날까...?  

한참 디버깅하며 삽질을 하다가 발견한 어이없는 에러...!!
바로... 첫번째 그림처럼 델파이 콤포넌트 파레트에서 TButton을 검색해서 폼에 추가하는 작업을 하다가 무언가 조작 실수로 폼의 이름을 Button으로 입력해 버린겁니다...

폼에서 사용하고 있는 콤포넌트의 클래스 이름을 폼 이름으로 사용해 버리면 이런 현상이 발생하는 거였습니다.즉 TForm에서 상속 받은 폼의 클래스 이름이 TButton이 되어 버려서 문제가 된것으로 보입니다.

Delphi 2007하고 Delphi 2010에서 확인해 봤는데 같은 증상이더군요...

조심해서 사용하면 되겠지만 IDE에서 이런 오류는 사전에 경고를 띄워주거나 VCL의 DFM 로딩 루틴에 개선이 필요할 것 같습니다.

RAD Studio XE...?

2010/08/23 14:03
사용자 삽입 이미지

 RAD Studio XE 가 곧 출시될 예정입니다.
엠바카데로 본사에선 미리보기로 기능을 소개하는 페이지가 열려 있습니다. 한국에선 오는 9월 2일 제품 발표회를 겸한 세미나가 개최될 예정이구요...

 RAD Studio XE는 기존 RAD Studio 2010의 다음 버전으로서 2006부터 붙여온 년도를 제품 명칭에 붙이지 않고 새로운 브랜드로 XE를 사용한다고 합니다... 앞으로 다음 버전이 나오면 XE2, XE3 이렇게 붙인다고 하는군요.

 이번 RAD Studio XE에 새롭게 추가된 기능은 Sneak Preview 페이지를 통해 소개하고 있습니다. 곧 3탄이 나오겠지만 1/2탄을 보면 그동안 개발자들이 애타게 기다려온 64비트 지원이나 크로스플랫폼 지원은 포함되어 있지 않습니다. 개인적인 느낌으로는 RAD Studio XE는 핵심 기능보다는 주변 기능(^^)과 안정성 증대에 좀 더 신경을 쓴것 같아 보입니다.

지금가지 알려진 개선점을 보면
  • RadPHP의 통합(별도 제품이었던 Delphi for PHP)
  • 서브 버전 클라이언트 통합
  • 기존 소스로 부터 시퀀스 다이어그램을 생성해주는 기능
  • 디버거, 코드 포맷터, RTL 개선
  • 그리고 이미 시장에서 인정받고 있는 몇몇 써드 파티 툴(Final Builder, AQtime, CodeSite, IP*Works 등)이 번들된다고 합니다. 저도 이미 사용 중이고 지인들에게 추천하는 것들이네요...^^

 며칠 전 공개된 개발 로드맵을 보면 2011년 상반기에 64비트 컴파일러의 프리뷰 버전이 나올 것 같고 크로스 플랫폼(Windows, Max OS X, Linux) 지원은 2011년 하반기 출시 예정인 "Pulsar" 버전에서 가능할 것 같습니다.

일신우일신 - 2010년 5월 13일

2010/05/13 16:34
  • 엠바카데로에서 개발툴에 대한 새로운 로드맵 ( RAD Studio, Delphi and C++Builder Roadmap ) 이 발표되었습니다. 시기는 언급되어 있지 않지만 Fulcrum 버전에서는 Mac OS X가 지원되고 Wheelhouse 버전 에서는 Linux까지 지원하는 점이 흥미롭네요.
사용자 삽입 이미지

  • AcroEdit가 64비트 윈도나 윈도 서버 2003 같은 서버 윈도에서는 시작하는 속도와 종료 속도가 아주 느렸었습니다. AcroEdit는 프로그램의 설정이나 상태를 레지스트리에 보관하지 않고 INI 파일만 사용하는데 그러다 보니 INI 파일의 양이 제법 큽니다. AcroEdit가 시작하거나 종료될 때 TIniFile 클래스를 통해 INI 파일을 액세스하면 GetPrivateProfileString 같은 API를 자주 호출하는데 이게 속도 저하를 일으킨 주원인으로 판단되었습니다. 이 문제를 해결하고자 여러가지로 고민을 했었는데 뾰족한게 없어 그냥 내버려 두고 있었는데 며칠전에 TIniFile 클래스를 TMemIniFile로 바꿔 버리니 바로 해결되어 버렸습니다...^^ INI파일의 내용을 모두 메모리에 올려 놓고 사용하니 다량의 API 호출이 발생하지 않아 바로 성능이 좋아지네요... 쩝...

일신우일신 - 2010년 3월 16일

2010/03/17 04:40
  • 오픈소스 RDBMS Firebird10주년 기념 로고 컨테스트가 진행 중이네요… Firebird 쓰시는 분들은 한번씩 들러서 투표해 보심이… 2010-03-16 09:43:25
  • 마이크로소프트가 아이폰에 대항하고자 절치부심하며 개발중인 Windows Phone 7에 대한 가이드북인 Programming Windows Phone 7 Series 가 윈도 개발자라면 모두들 알고 있을 유명 저자 Charles Petzold 에 의해 저술되고 있다는군요… 올가을쯤 나올 예정이라는데 무료로 다운로드 가능할거라고 합니다.

이 글은 김성동님의 2010년 3월 16일의 미투데이 내용입니다.

Delphi 2010 Handbook

2010/03/10 23:40
얼마전 출간된 유명 저자 Marco Cantu의 Delphi 2010 Handbook이 Delphi 2010/C++ Builder 2010/RAD Studio 2010 정품 사용자에 한해 엠바카데로 개발자 사이트에서 무료로 배포되기 시작했습니다.
사용자 삽입 이미지
Marco Cantu와 엠바카데로가 협력해서 그동안 새로운 버전이 출시될 때 마다 여러건의 훌륭한 문서들이 제공되었는데 이번에는 책 전체를 제공하고 있습니다.
대신에 챕터 사이에 상용 콤포넌트 광고가 들어가 있네요...^^
사용자 삽입 이미지
총 319 페이지로 이루어져 있고 주요 목차는 아래와 같습니다. 정품 사용자분들은 얼른 다운 받으러 고고씽~~~~
  • Chapter 1 : A Better IDE
  • Chapter 2 : The Debugger
  • Chapter 3 : Extended RTTI and Attributes
  • Chapter 4 : More on the Compiler and the RTL
  • Chapter 5 : The VCL and Windows 7
  • Chapter 6 : Touch and Gestures
  • Chapter 7 : Database Access and DataSnap
  • Chapter 8 : REST Web Services

일신우일신 - 2010년 2월 23일

2010/02/24 04:41
  • 델파이 초급 개발자 부족 현상을 해결하기 위해 데브기어에서 직접 교육한 개발자들이 구직중입니다…(델파이 개발자 데브기어) 2010-02-23 12:05:48
  • 유명 저자 Marco Cantu의 Delphi 2010 Handbook 이 출간되었답니다. RAD Studio 2010 정품 사용자에게는 무료로 제공하는 것에 대해 엠바카데로와 협의 중이라고 하니 정품 사용자는 좀 기다리는 것이 좋을 듯 합니다.

이 글은 김성동님의 2010년 2월 23일의 미투데이 내용입니다.

일신우일신 - 2010년 1월 22일

2010/01/22 16:08
  • 델파이로 만드는 오픈소스 트위터 클라이언트 - RADTweet
  • 아이폰 이모지 문자 관련 애플의 KB
    • iPhone : About using the Emoji keyboard
    • iPhone Troubleshooting Emoji issues
    • KT를 통해 SMS를 주고 받는 한국에서 발매된 아이폰은 이모지 문자와 유니코드 기호 문자의 일부가 처리가 안되는 것 같습니다. 아이폰에서 아이폰으로 이모지 문자와 유니코드 기호 문자가 포함된 SMS를 보내도 정상적으로 표시가 안되고 일부 문자가 ? 로 표시됩니다. 기존 휴대폰에서 사용하는 기호 문자는 이상 없이 나오구요. 트위터의 @ollehkt 님께 문의를 해 놓았는데 아이폰끼리만이라도 제대로 보였으면 좋겠네요.

일신우일신 - 2009년 12월 15일

2009/12/16 04:45

이 글은 김성동님의 2009년 12월 15일의 미투데이 내용입니다.

일신우일신 - 2009년 12월 13일

2009/12/14 09:34
  • 유명 저자 Marco Cantu의 Delphi 2010 Handbook 이 완성이 다 되어 간다고 하는군요… 다음달이면 만나 볼 수 있답니다…
  • 아이폰 앱 토정비결 이 드디어 한국 앱스토어 TOP 100에 들어 92위를 하고 있습니다. LifeStyle 카테고리에서는 3위에 랭크되어 있습니다. 4월부터 아이폰 앱 개발 시작한 이후로 TOP 100에 들어보긴 처음이라 감개무량합니다. 구입해 주신 분들 너무너무 감사드립니다…

일신우일신 - 2009년 12월 8일

2009/12/09 04:46
  • 델파이용 그리드 콤포넌트 NextGrid 가 5.0.5버전으로 업그레이드 되었습니다. http://www.bergsoft.net/shownews/12-05-09.htm [ 2009-12-08 10:21:49 ]
  • AutomatedQA 사의 AQTime 이 6.3으로 업그레이드 되었군요… Windows 7과 Intel i7 프로세서 지원등이 추가되었답니다. http://bit.ly/4Gajsv [ 2009-12-08 10:22:19 ]
  • 제가 개발한 델파이용 SECS/GEM 드라이버 콤포넌트 SemiOn이ㅣ 델파이 2009/2010 호환성을 확보했습니다. http://www.acrosoft.pe.kr/board/so_intro [ 2009-12-08 10:22:44 ]
  • 얼마나 유명한 사이트인지는 모르겠지만 eBanner가 iPhone Apps Plues 란 사이트에서 Best 앱으로 선정되었습니다. [ 2009-12-08 16:22:43 ]
  • LifeStyle 카테고리 TOP 100 순위에 올라 있는 아이폰 앱 토정비결이 헐벗은 그녀들 사이를 벗어날 생각을 안하는군요…ㅠㅠ 얼른 벗어나고 싶은데 말이죠…^^ [ 2009-12-08 23:19:42 ]

이 글은 김성동님의 2009년 12월 8일의 미투데이 내용입니다.