C++Builder XE: C++Builder 6 이후의 새로운 VCL/RTL 기능들 Nick Hodges, 박지훈. 임프 2010 년 9 월 Americas Headquarters EMEA Headquarters Devgear 100 California Street, 12th York House 서울특별시반포 1 동 743-14 Floor 18 York Road 4 층 데브기어 San Francisco, California Maidenhead, Berkshire (T) 02.595. 4288 94111 SL6 1SF, United Kingdom
IP*Works! 네트워크컴포넌트 IP*Works! 는유명한상용네트워크컴포넌트라이브러리입니다. C++Builder 6 이후버전에는이미 Indy 네트워크라이브러리가포함되어있지만, IP*Works! 는 Indy 와는차별화된기능들을가지고있고상용이라더욱안정적으로업그레이드되고있습니다. Windows 클라우드개발 Azure 이제 C++Builder XE 에서클라우드 Windows Azure 로의연결을지원하게 되었습니다. 정규식지원 이제드디어 C++Builder 에서 RegularExpressions 유닛의 TRegEx 클래스를통해정규식을지원하게되었습니다. 멀티터치 / 제스처 지원 이제 C++ 빌더의모든컨트롤에서터치인터페이스를지원하게되었으며, 특히특별한코딩없이컴포넌트수준의설정만으로도터치와제스츄어를지원합니다. 이를위해 C++ 빌더 2010 에서는대부분의 VCL 컨트롤에서 Touch 속성이추가되었으며, 여기서지정된 GestureManager 컴포넌트를통해제스처도지원됩니다. 기존애플리케이션에도간단히터치인터페이스를추가할수있습니다. Embarcadero Technologies White Paper
C++ 빌더 2010 에서는기본적으로 30 개의표준제스처를지원하며, 개발 중에 Custom Gesture 를추가하거나혹은런타임에 GestureRecorder 컨트롤을이용하여쉽게사용자제스츄어를기록할수있습니다. TTouchKeyboard 컴포넌트 가상키보드컴포넌트인 TTouchKeyboard 가추가되어, 터치나마우스클릭으로키입력을할수있게되었습니다. 키오스크나태블릿개발에아주유용합니다. 터치키보드는상속하여간단히원하는언어키보드를구현할수있으며, 숫자키패드로바꿀수도있습니다. Embarcadero Technologies White Paper - 3 -
Windows7 / Windows Vista 지원 C++ 빌더 6, 2006 버전이 Windows XP 만지원했었던데비해, C++ 빌더 2007 버전부터는 Windows Vista 를지원하며, C++ 빌더 2010 이후로는그에더하여 Windows 7 을공식적으로지원하게되었습니다. 따라서 C++ 빌더 XE 로컴파일한애플리케이션은마이크로소프트의 Windows 7 가이드라인을준수하게되며, Windows 7 에서아무문제없이제대로동작합니다. Direct2D 지원이제 C++ 빌더에서도손쉽게 Direct2D 개발을할수있습니다. 더욱이, C++ 빌더개발자들이익숙한 TCanvas 와유사하게 TDirect2DCanvas 로만들어져기존의 TCanvas 로개발해본개발자라면누구나쉽게배워활용할수있습니다. 비주얼웹개발 : VCL for the Web C++Builder 2006 에서처음지원되기시작한 IntraWeb 이, C++Builder XE 까지업그레이드되면서 VCL for the Web 이라는이름으로 VCL 에공식채택되며기능적인면과안정성면에서크게발전하였습니다. VCL for the Web 은 C++Builder 에서일반윈도우폼개발을하는것과동일한비주얼한 RAD 개발방식으로웹개발을할수있도록해주는혁신적인프레임워크입니다. Embarcadero Technologies White Paper
이제 C++Builder 개발자들은전문웹개발자들보다도더욱빠르게, 동시에더욱고품질로고급웹개발을할수있습니다. 심지어는웹에 대한아무런지식이없어도상당한수준의웹개발을할수있습니다. 리본컨트롤 Windows 7 / MS Office 2007 에서도입된리본컨트롤을컴포넌트로 지원하여, 경쟁개발툴처럼복잡한코딩없이폼디자인만으로간단히 리본컨트롤을추가하고다룰수있습니다. TIFF 및 RAW 이미지 지원 WIC(Windows Imaging Components) 를지원함으로써 TIFF 포맷이미지를 직접지원할수있게되었습니다. 또한디지털카메라에서많이사용되는 RAW 포맷들도 WIC 를통해지원하게되었습니다. IOUtils 유닛 TDirectory, TPath, TFile 등의클래스로로컬디스크상의디렉토리, 파일들을간단히검색, 액세스가능합니다. TButtonedEdit 컴포넌트 에디트컴포넌트안에버튼을가진컴포넌트입니다. LeftButton 및 RightButton 속성에이미지를지정할수있으며각각의클릭이벤트핸들러를가집니다. Embarcadero Technologies White Paper - 5 -
TCategoryPanel Group 컴포넌트 흔히 아웃룩바 라고불리는인터페이스를간편하게구현할수있는컴포넌트입니다. 접을수있는여러페이지들을가질수있으며, TPageControl 과비슷한용도로사용할수있지만더미려한 UI 를보여줄수있습니다. TballoonHint 컴포넌트 TCustomHint 클래스를상속하면새로운힌트모양들을보다쉽게생성할수있습니다. C++Builder 2009 이상에서는기본적으로 TBalloonHint 를제공합니다. 모든 VCL 컴포넌트는이제 CustomHint 라는속성을가지며, TCustomHint 를상속받은컴포넌트를가리킬수있습니다. TButto 의 UI 강화 TButton 컴포넌트에직접이미지를표시할수있게되었습니다. 또한 Windows Vista 에서는 CommandLink 와 SplitButton 스타일을지원합니다. Embarcadero Technologies White Paper
TLinkLabel 컴포넌트 TLinkLabel 컴포넌트는 Text 내의 <a> 태그내용을링크로표시해주며 클릭했을때 OnLinkClick 이벤트를발생시켜줍니다. TRichEdit 기능강화 윈도우리치에디트 (RichEdit) 2.0 스펙을지원합니다. 리스트뷰에서아이템들의 그루핑을지원합니다. TListView 그루핑 TProgressBar 기능강화 TProgressBar 는이제테마룩, 마키그리고스무스모드스타일을 지원합니다. 그리고비스타에서는일시정지 (Pause) 및중지 (Stopped) 상태가지원됩니다. TEdit 의 NumbersOnly TEdit 에추가된 NumbersOnly 프로퍼티는에디트에숫자만입력되도록 제한하는기능을가집니다. Embarcadero Technologies White Paper - 7 -
TEdit 의 TextHint TextTip 은 TEdit 나 TComboBox 가비어있고포커스가없을때힌트를텍스트로표시합니다. TForm.GlassFrame 프로퍼티 TForm 클래스에 GlassFrame 이라는프로퍼티가추가되었으며, 이프로퍼티는폼에윈도비스타에서도입된에어로글래스효과를적용할수있게해줍니다. TTaskDialog TTaskDialog 컴포넌트는비스타에서새로도입된태스크다이얼로그기능을사용할수있게해주는컴포넌트입니다. 개발자는오브젝트인스펙터를이용하여 TaskDialog 의모양을커스터마이즈할수있습니다. TFileOpenDialog 및 TFileSaveDialog 윈도비스타에새로도입된파일오픈다이얼로그기능을사용하려면 TFileOpenDialog 컴포넌트를사용하십시오. 윈도우테마지원개선 C++Builder 2006 에서는 Windows XP 의테마기능을지원하기위해 XPMan (TXPManifest 컴포넌트 ) 방식을사용했습니다. C++Builder 2007 이후로이런테마지원이더네이티브해져서, 프로젝트 Embarcadero Technologies White Paper
옵션에서체크하나만설정하면전체프로젝트에대해간편하게테마지원을추가할수있습니다. 프로젝트옵션의 Application 페이지에서 Enable runtime Themes 체크박스의체크를하면프로젝트전체에대해테마지원이되게됩니다. 이렇게하면 IDE 에서는애플리케이션에테마기능을적용하기위해프로젝트리소스파일에메니페스트파일을포함시켜줍니다. 이옵션은 C++Builder 2007 이상에서새로만든프로젝트에서는디폴트로체크가되어있고, C++Builder 2006 이하의구버전에서작성된소스에대해서는호환성을위해체크가안되어있습니다. (XPMan 방식을사용한경우이체크를하면충돌하며, 그런경우이개선된테마지원을사용하려면프로젝트의모든유닛들의 uses 리스트에서 XPMan 유닛을제거해야합니다 ) TeeChart Standard C++Builder 6 버전까지는 TeeChart 의컴포넌트중 TChart, TDBChart 만 제공되었지만, 이제는 TeeChart Standard 의완전한패키지가제공되어 더욱풍부한기능을사용할수있습니다. TChart 와 TDBChart 이외에추가된컴포넌트들은다음과같습니다. TSeriesDataSet TChartDataSet TDBCrossTabSource TButtonColor TButtonPen Embarcadero Technologies White Paper - 9 -
TButtonGradient TDraw3D TComboFlat TImageFiltered TTeeGDIPlus TDockTabSet TDockTabSet 은폼의좌, 우측가장자리에탭셋의형태로도킹가능한폼입니다. 아래주소에자세한사용법이안내되어있습니다. http://dn.embarcadero.com/article/33446 SnapBuffer / ScreenSnap 프로퍼티 TFlowPanel TForm 클래스의 SnapBuffer 와 ScreenSnap 속성은폼이스크린의가장자리에가까이가면자동으로붙는자석효과를줄수있습니다. 데모보기 TFlowPanel 은 TPanel 컴포넌트에서파생되었으며 FlowStyle 프로퍼티의값에따라내부에컨트롤들을배치할수있습니다. 기본값은 fsleftrighttopbottom 인데이는 TFlowPanel 내에좌상단에서부터우하단반향으로배치함을의미합니다. TFlowPanel 의기능은웹브라우저에서텍스트등의요소들과유사합니다. Embarcadero Technologies White Paper
TGridPanel TGridPanel 은내부의각컴포넌트들이그리드의각셀에위치하도록해주는패널컨트롤입니다. 그리드패널을이용하면개발자는패널위의행수와열수를지정할수있으며, 각컴포넌트들은마우스로어디로배치하든관계없이그리드의다음빈셀에위치하게됩니다. 각그리드셀에이미컨트롤이배치된후에새로컨트롤을추가하면새컨트롤의위치는 ExpandStyle 프로퍼티에따라결정됩니다. 예를들어 ExpandStyle 프로퍼티가기본값인 emaddrows 로지정되어있는경우에는그리드에새로운행이추가되고새행의각셀들에새로운컨트롤들을받아들일수있게됩니다. TCategoryButtons The TCategoryButtons 컨트롤은 C++ 빌더 IDE 의새로운툴팔레트와같은버튼모음을만들수있게해줍니다. 컨트롤은카테고리를포함할수있으며각카테고리는버튼을포함합니다. 카테고리의색상을변경할수도있습니다. 다양한프로퍼티를이용해서컨트롤의모양을변경할수있습니다. 원한다면카테고리는실행시에위치를변경할수있으며개개의버튼은카테고리내에서이동이나복제가가능합니다. TTrayIcon TTrayIcon 컴포넌트는 VCL 애플리케이션이태스크트레이에아이콘을 넣을수있도록해줍니다. 이컨트롤은풍선도움말과팝업메뉴를 지원합니다. Embarcadero Technologies White Paper - 11 -
인텔리마우스지원 VCL 인텔리마우스 API 를지원합니다. 예를들어아래그림처럼 TMemo 컴포넌트위에서마우스중앙버튼을누르면사용자로하여금메모내에서스크롤링하기위해마우스를사용할수있도록해줍니다. C++ 빌더코드에디터도이기능을지원합니다. Margin, AlignWithMargins, Padding 모든 VCL 컨트롤에 Padding 및 Margin 프로퍼티가추가되었습니다. 이두프로퍼티는 HTML 에서와비슷하게동작하는데, Padding 은컨테이너컨트롤이내부의컨트롤과가지는여유공간의픽셀길이입니다. Margin 프로퍼티는컨트롤의바깥여유공간입니다. 컨트롤의 AlignWithMargins 프로퍼티가 True 로지정되고 Align 프로퍼티가 alnone 이아닌값으로지정되면해당컨트롤의 Margin 프로퍼티값에따라배치됩니다. 예를들어, 그림은폼위에있는 TPanel 을보여줍니다. 이패널은 Align 이 alclient 로, AlignWithMargins 속성이 True 로지정되었으며, Margin 속성은 20 으로지정된상태입니다. 또한폼의 Padding.Bottom 속성은 30 으로지정되었습니다. AlignWithMargins 와 Margin 속성을이용하면기존의 Align 속성만이용할때보다훨씬쉽고풍부하게컨트롤들을배치할수있습니다. GIF, PNG 이미지지원 bmp, jpeg 이미지지원에이어, 이제 VCL 에서 PNG 및 GIF 이미지포맷도지원됩니다. 또한이미지리스트컴포넌트에서 png 파일을직접읽어들일수있어전보다더편리하게되었습니다. Embarcadero Technologies White Paper
FastMM 메모리매니저도입 FastMM 은전통적인 C++Builder 의메모리매니저인 borlndmm.dll 을 대체하는것으로서, 이전보다훨씬빠른메모리루틴들을제공하여 Delphi 로개발된애플리케이션의속도를비약적으로끌어올려줍니다. 또한 FastMM 으로인해 Delphi 의 RTL 에메모리관리관련의새로운기능들이많이추가되었습니다. 전역변수인 ReportMemoryLeaksOnShutdown 에 true 값을설정해두면, 프로그램이종료될때메모리누수상황에대해알려주며, 메인 exe 와 dll 사이에메모리를간단히공유할수도있습니다. 많은 RTL 함수를 FastCode 프로젝트 함수로대체 FastCode 프로젝트개발자들이개발한많은기능들이 VCL 과 RTL 에 포함되었습니다. Embarcadero Technologies Inc. 는애플리케이션개발자및데이터베이스전문가가자신이선택한환경에서소프트웨어애플리케이션을설계, 빌드및실행하는도구를사용할수있도록합니다. 전세계 3 백만이상의커뮤니티와 Fortune 지선정 100 대기업중 90 개기업이 Embarcadero 의 CodeGear 및 DatabaseGear 제품군을기반으로하여생산성을향상시키고개방적인협업및자유로운혁신을추구하고있습니다. Embarcadero 는 1993 년에설립되어캘리포니아샌프란시스코에본사가있으며전세계에사무소를두고있습니다. Embarcadero 의온라인주소는 www.embarcadero.com 입니다. 데브기어는미국 Embarcadero Technologies Inc. 와기존의코드기어한국지사의협력으로전략적으로설립된엠바카데로솔루션전문공급기업입니다. 데브기어는 Delphi, C++Builder, JBuilder, Delphi Prism 등개발툴제품들과 ER/Studio, PowerSQL, DB Artisan, EA/Studio 등의데이터베이스툴제품들에대한한국시장에공급은물론기술지원및교육등의기술서비스를제공합니다. 데브기어웹사이트는 http://www.devgear.co.kr/ 이며제품에대한문의는 ask@embarcadero.kr 로하면됩니다. Embarcadero Technologies White Paper - 13 -