[글쓴이:] 박지훈.임프

Delphi/C++Builder 컨설턴트, 볼랜드포럼 운영자, 데브퀘스트 대표

Windows7에서 THeaderControl 섹션의 OwnerDraw 문제

이번 포스트에서는, 윈도우7의 Aero UI에 맞게 THeaderControl의 헤더섹션을 제대로 OwnerDraw 하는 방법에 대해 살펴봅니다. THeaderControl은 글자 그대로 헤더 섹션들을 정의해놓은 헤더 컨트롤입니다. ListView에도 포함되어 있구요. 이 HeaderControl의 각 섹션에는 Text 속성을 통해 나타날 텍스트를 지정해줄 수 있습니다. 그런데 이 Text에는 멀티라인, 즉 여러…

임프의 dfm 폼 컨버터

Delphi 및 C++Builder에는 dfm 폼 파일을 바이너리에서 텍스트로 혹은 그 반대로 변환하기 위한 유틸리티 convert.exe가 포함되어 있습니다. 일반적으로는 텍스트 포맷의 dfm 파일이 유리한 점이 많은데, 예를 들면 당연히 텍스트 파일만이 diff가 가능하기 때문에 SubVersion 같은 버전 관리 시스템에서 관리하기도 편리합니다. Delphi…

Undocumented: InputBox 함수에서 Password 입력 받기

간단하지만 경우에 따라 꽤 유용하게 쓸 수 있는 팁입니다. (아쉽게도, Delphi/C++Builder의 XE2  버전 이상에서만 가능한 기능입니다 -.-;;) VCL에 InputQuery와 InputBox라는 함수가 있습니다. 아주 초보적인 함수인데, 아주 자주 쓰는 개발자도 있고 전혀 존재조차 모르는 분들도 꽤 많이 있습니다. 이 두 함수는 본질적으로…

XE3/XE4에서 TClientDataSet의 한글 길이 버그, 패치 파일

앞서의 글, http://blog.devquest.co.kr/imp/786에서 썼던 문제, 즉 TClientDataSet에서 10자 이상의 한글 필드를 사용했을 때 ‘Field xxx not found’ 에러가 발생하는 문제에 대한 패치를 만들었습니다. 반나절 가까이 작업했네요. 엠바카데로에 버그리포트는 올리지 않을 생각입니다. 알고 있는 버그들이 꽤 많은데, 이 한건을 리포트하고 나면 나머지 버그들은…

XE3/XE4에서 TClientDataSet의 한글 길이 버그

프로젝트를 진행하다가, 델파이/C++빌더 XE3 및 XE4의 TClientDataSet의 이상한 버그 하나를 추가로 발견했습니다. 필드 이름이 한글이고 대략 10글자가 넘을 때 “Field xxx not found” 에러가 나는 것인데요. VCL의 소스를 확인해보니 필드 이름을 UTF8로 변환한 후 길이를 32보다 크면 32길이로 잘라버리더군요. UTF8에서는…

터치스크린 여부와 터치포인트 갯수 알아내기

델파이와 C++빌더는 2010 버전부터 멀티터치와 제스추어를 지원하고 있습니다. 경쟁 개발툴인 비주얼스튜디오에서 터치 개발을 하는 것보다 훨씬 간단하면서도 강력하기 때문에 멀티터치 애플리케이션을 개발하는 데 있어 델파이와 C++빌더에게 적수는 없죠. 그런데 의외로, 현재 PC(혹은 디바이스)에서 멀티터치가 지원되는지 여부를 알아낼 방법은 지원하지 않더군요.…

임프 블로그 WordPress로 이전

임프의 블로그는 지난 2009년 초에 개설한 후로 줄곧 TextCube 기반으로 운영해왔는데요. 몇가지 기능의 한계와 편의성 문제로, WordPress로 이전을 했습니다. 대략 3일 정도 내내 작업을 거쳐야 했네요. 다행히 블로그 컨텐츠 자체를 TextCube에서 WordPress로 임포트하는 좋은 툴이 있어 큰 도움이 되었지만, 기존의 TextCube와는 다른…

모바일 개발을 위한 델파이 언어 – PDF

지난 4회에 걸쳐 연재로 마르코 칸투의 문서 “The Delphi Language for Mobile Development”를 번역했는데요. 하나로 엮어 한번에 보기에 좋고 프린트 하기도 더 나은 pdf 문서로 다시 만들어봤습니다. 다운로드 링크는 아래와 같습니다. 이 pdf 문서는 비영리, 비변경의 조건 하에 누구나 자유롭게…

모바일 개발을 위한 델파이 언어 (4)

델파이 XE4 버전에서는 iOS 및 ARM 컴파일러 지원을 위해, 기존의 델파이와는 다른 새로운 델파이 컴파일러를 도입했습니다. 기존 델파이 컴파일러와의 호환성을 위해 대부분의 문법들은 하위호환되지만 델파이로 모바일 개발을 하기 위해서는 알아두어야 할 주의해야 할 부분들이 상당히 많습니다. 현재 엠바카데로에서 델파이 프로덕트…

모바일 개발을 위한 델파이 언어 (3)

델파이 XE4 버전에서는 iOS 및 ARM 컴파일러 지원을 위해, 기존의 델파이와는 다른 새로운 델파이 컴파일러를 도입했습니다. 기존 델파이 컴파일러와의 호환성을 위해 대부분의 문법들은 하위호환되지만 델파이로 모바일 개발을 하기 위해서는 알아두어야 할 주의해야 할 부분들이 상당히 많습니다. 현재 엠바카데로에서 델파이 프로덕트…

모바일 개발을 위한 델파이 언어 (2)

델파이 XE4 버전에서는 iOS 및 ARM 컴파일러 지원을 위해, 기존의 델파이와는 다른 새로운 델파이 컴파일러를 도입했습니다. 기존 델파이 컴파일러와의 호환성을 위해 대부분의 문법들은 하위호환되지만 델파이로 모바일 개발을 하기 위해서는 알아두어야 할 주의해야 할 부분들이 상당히 많습니다. 현재 엠바카데로에서 델파이 프로덕트…

모바일 개발을 위한 델파이 언어 (1)

델파이 XE4 버전에서는 iOS 및 ARM 컴파일러 지원을 위해, 기존의 델파이와는 다른 새로운 델파이 컴파일러를 도입했습니다. 기존 델파이 컴파일러와의 호환성을 위해 대부분의 문법들은 하위호환되지만 델파이로 모바일 개발을 하기 위해서는 알아두어야 할 주의해야 할 부분들이 상당히 많습니다. 현재 엠바카데로에서 델파이 프로덕트…

엠바카데로, 멀티디바이스 네이티브 개발을 위한 RAD Studio XE4 발표

몇시간 전에 RAD Studio XE4, Delphi XE4, C++Builder XE4가 발표되었습니다. 기존 XE3 버전에 비해 이번 XE4 버전의 가장 눈에 띄는 점은 iOS 지원입니다. 이제 델파이와 C++빌더로 직접 아이폰, 아이패드 앱을 개발할 수 있습니다. 아래는 보도자료 번역입니다. —————————– 샌프란시스코, 2013년 4월 22일…

PC 판매량 폭락을 불러온 윈도우8의 치명적인 문제는

IDC에 따르면 2013년 1분기 PC 판매량이 무려 14%나 폭락했다고 합니다. 이것은 스스로 발표한 IDC가 이전에 예상 발표를 했던 하락폭 7.7%의 거의 두배에 가깝습니다. IDC는 물론 그 발표를 인용한 대부분의 보도들도 그 주원인으로 윈도우8의 부진을 꼽고 있습니다. 물론 태블릿 시장의 확대로 PC…

엠바카데로, AnyDAC 인수후 FireDAC으로 공개

엠바카데로에서 Delphi, C++Builder를 위한 새로운 데이테베이스 연결 아키텍처, FireDAC을 발표했습니다. 기존의 dbExpress, ADO 외에 새로운 데이터베이스 연결 방법을 제공하는 것입니다. FireDAC Multi-Device Data Access Library FireDAC은 Oracle, SQL Server, DB2, MySQL, Informix, InterBase,Firebird, SQLite, PostgreSQL, SQL Anywhere, Advantage DB, Access 등 아주 다양한 데이터베이스를 지원하고 델파이/C++빌더…

FireMonkey에서 썸네일을 만들려면 (2)

저번 포스트에서 썼다시피, 파이어몽키에도 썸네일을 만들어주는 TBitmap.CreateThumbnail 메소드가 있습니다. 현재 버전에서 버그가 있지만 그 버그를 회피해서 제대로 썸네일을 만들 방법을 설명했습니다. 그런데, 아래 캡쳐 이미지들에서 보시다시피, GDI+ 캔버스와 맥의 Quartz 캔버스의 경우에는 아주 좋은 품질의 썸네일이 만들어집니다만, Drect2D 캔버스의 경우에는 좀 심하게…

FireMonkey에서 썸네일을 만들려면 (1)

바로 전에 VCL에서 썸네일을 만드는 방법에 대해 글을 올렸었는데요. 이번에는 파이어몽키에서의 썸네일에 대해서도 살펴보지요. 파이어몽키에는 정확히 썸네일을 만들기 위한 루틴이 이미 준비되어 있는데요. 바로 TBitmap.CreateThumbnail 메소드입니다.

(참고로, 파이어몽키 TBitmap은 VCL의 TBitmap과 달리 bmp만이 아니라 jpg나 png등 라스터 그래픽 포맷을…

고품질 썸네일 이미지를 쉽게 만들려면

델파이, C++빌더에서 이미지 파일의 썸네일, 즉 작은 크기로 줄인 이미지를 만들어내는 방법은 비교적 간단하고 또 많이 알려져 있습니다. 바로 TCanvas의 StretchDraw 프로시저를 이용하는 것인데요. 그런데, 이렇게 StretchDraw를 이용해서 썸네일을 만들어보면 품질이 그다지 좋지 않습니다. 그냥 좋지 않다 정도가 아니라 흔히…

FireMonkey에서 DirectX 사용을 강제하려면

윈도우비스타/7/8인데도 불구하고 FireMonkey 애플리케이션이 DirectX 기반이 아닌 GDI+ 기반으로 돌아가는 경우가 있습니다. 주로 그래픽 칩셋이 저성능 버전일 때인데요. (윈도우 XP/2003의 경우는 DirectX 10.1을 지원되지 않아 오직 GDI+만 사용할 수 있음) GDI+ 캔바스는 DirectX 캔바스에 비해 드로잉 성능이 많이 떨어집니다. 같은 그래픽 칩셋에서 GDI+…