태그: verXE2

with 구문의 위험성 – cxGrid 및 TRect의 사례

델파이(오브젝트 파스칼) 언어에서 with 구문이 종종 위험할 수 있다는 말은 델파이 개발자라면 한번쯤은 들어보셨을 겁니다. with 구문은 그 블럭 안의 식별자가 어느 객체에 속한 것인지를 모호하게 만들 수 있기 때문인데요, 주로 self에 속한 멤버와 with에 속한 멤버 사이에서 문제가 발생하기…

DBGrid에서 체크박스로 멀티셀렉트 하기

저 개인적으로는 그리드 컴포넌트로는 서드파티인 DevExpress의 cxGrid를 주로 사용하기 때문에, 간단한 로직 검증 테스트 목적 외에는 TDBGrid를 잘 사용하지 않습니다. 하지만 제가 지원하는 여러 사이트들 중에는 업무용 기본 그리드 컴포넌트로 TDBGrid를 사용하고 있는 경우가 종종 있습니다. 지난주 제가 기술지원을 하고 있는…

Windows Server 2008에서 “Could not load file or assembly Microsoft.Build.Framework…” 에러

윈도우 서버 2008 OS에 델파이/C++빌더의 최근 버전들(2010~XE5)을 설치한 경우, 기본 상태에서는 컴파일하려고 할 때 컴파일러 에러가 뜨면서 컴파일이 되지 않습니다. 정확한 에러 메시지는 다음과 같습니다.

이 에러가 발생하는 원인은, 델파이/C++빌더(이하 RAD Studio)의 최근 버전들이 컴파일에 이용하는 빌드엔진인 MSBuild가 없어서입니다. MSBuild는 .NET 프레임워크에…

TClientDataSet+TDBNavigator가 극도로 느려지는 문제에 대한 해결책

개인적으로 저는 잘 사용하지 않지만, DBNavigator 컴포넌트는 데이터베이스 애플리케이션에서 정말 유용한 컴포넌트입니다. TDBNavigator의 역할은 현재 연결되어 있는 데이터셋의 레코드 단위 운영을 위한 컴포넌트로서, 아시다시피 데이터셋의 앞으로/뒤로, 최초/최종 등의 작업을 위한 UI를 간단히 구성해줍니다. 그런데, 델파이/C++빌더의 XE2 이후 버전들부터는, 이 TDBNavigator가 TClientDataSet과 연결해서…

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

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

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

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

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

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

XE2, XE3 버전부터 윈도우2000 지원 중단

윈도우 2000의 지원 문제는, 대부분의 개발자분들께는 별다른 문제가 아닐텐데요. 이미 윈도우 XP 이상으로 대부분 옮겨간 상태이니까요. 그런데 소수라도 일부 개발자분들께는 윈도우 2000의 지원 여부가 꽤 중요할 수 있습니다. 그리고 그다지 중요하지 않은 분들이라도 정확하게 델파이와 C++빌더의 어느 버전까지 윈도우 2000을…

Delphi/C++Builder 여러 버전을 역순으로 설치시 주의

제목 그대로, 델파이와 C++빌더의 2007 이상 버전은 버전과 역순으로 설치하는 것은 위험하므로 주의를 요합니다. 즉, 델파이 XE3를 설치한 후 2007 버전을 설치한다든지 하는 걸 말하는데요. 일반적으로는 아주 오래된 버전들(7 이하)의 경우는 역순으로 설치하더라도 문제가 없었는데, 2007 이상의 버전에서는 문제가 되더군요. 제…

Delphi 2009 이후 버전에서 액티브X 생성시 TOLEControl이 없는 문제

델파이 2009 버전부터(즉, XE2, XE, 2010, 2009 버전 모두 해당) 액티브X 프로젝트를 생성할 때 구현 방식이 여러 면에서 바뀌었습니다. 이렇게 구현 방식이 변경되면서 여러 버그들이 해결되었는데요. 그런데 델파이 2009에서의 액티브X 구현 변경 내용 중에, 자동 생성되는 xxx_TLB.pas에서 이전에는 있었던 TOLEControl…