화이트페이퍼 Delphi 7 ~ Delphi 2010 VCL 의새로운기능들 Nick Hodges, 박지훈. 임프 2009 년 11 월 Corporate Headquarters 100 California Street, 12th Floor San Francisco, California 94111 Asia-Pacific Headquarters L7. 313 La Trobe Street Melbourne VIC 3000 Australia DevGear 서울특별시서초구반포동 743-1 4층데브기어
이제델파이의모든컨트롤에서터치인터페이스를지원하게되었으며, 특히특별한코딩없이컴포넌트수준의설정만으로도터치와제스츄어를지원합니다. 이를위해델파이 2010 에서는대부분의 VCL 컨트롤에서 Touch 속성이추가되었으며, 여기서지정된 GestureManager 컴포넌트를통해제스처도지원됩니다. 기존애플리케이션에도간단히터치인터페이스를추가할수있습니다. 멀티터치 / 제스처지원 델파이 2010 에서는기본적으로 30 개의표준제스처를지원하며, 개발중에 Custom Gesture 를추가하거나혹은런타임에 GestureRecorder 컨트롤을이용하여쉽게사용자제스츄어를기록할수있습니다. 2
가상키보드컴포넌트인 TTouchKeyboard 가추가되어, 터치나마우스클릭으로키입력을할수있게되었습니다. 키오스크나태블릿개발에아주유용합니다. 터치키보드는상속하여간단히원하는언어키보드를구현할수있으며, 숫자키패드로바꿀수도있습니다. TTouchKeyboard 컴포넌트 Windows 7 / Windows Vista 지원 델파이 6, 7, 2005, 2006 버전이 Windows XP 만지원했었던데비해, 델파이 2007 버전부터는 Windows Vista 를지원하며, 델파이 2010 에서는그에더하여 Windows 7 을공식적으로지원하므로, 델파이 2010 으로컴파일한애플리케이션은 Windows 7 에서아무문제없이제대로동작합니다. 이제델파이에서도손쉽게 Direct2D 개발을할수있습니다. 더욱이, 델파이개발자들이익숙한 TCanvas 와유사하게 TDirect2DCanvas 로만들어져기존의 TCanvas 로개발해본개발자라면누구나쉽게배워활용할수있습니다. Direct2D 지원 TIFF 및 RAW 이미지지원 IOUtils 유닛 WIC(Windows Imaging Components) 를지원함으로써 TIFF 포맷이미지를직접지원할수있게되었습니다. 또한디지털카메라에서많이사용되는 RAW 포맷들도 WIC 를통해지원하게되었습니다. TDirectory, TPath, TFile 등의클래스로로컬디스크상의디렉토리, 파일들을간단히검색, 액세스가능합니다. 3
Windows 7 / MS Office 2007 에서도입된리본컨트롤을컴포넌트로지원하여, 경쟁개발툴처럼복잡한코딩없이폼디자인만으로간단히리본컨트롤을추가하고다룰수있습니다. 리본컨트롤 에디트컴포넌트안에버튼을가진컴포넌트입니다. LeftButton 및 RightButton 속성에이미지를지정할수있으며각각의클릭이벤트핸들러를가집니다. TButtonedEdit 컴포넌트 흔히 아웃룩바 라고불리는인터페이스를간편하게구현할수있는컴포넌트입니다. 접을수있는여러페이지들을가질수있으며, TPageControl 과비슷한용도로사용할수있지만더미려한 UI 를보여줄수있습니다. TCategoryPanel Group 컴포넌트 4
TCustomHint 클래스를상속하면새로운힌트모양들을보다쉽게생성할수있습니다. Delphi 2009 이상에서는기본적으로 TBalloonHint 를제공합니다. 모든 VCL 컴포넌트는이제 CustomHint 라는속성을가지며, TCustomHint 를상속받은컴포넌트를가리킬수있습니다. TBalloonHint 컴포넌트 TButton 컴포넌트에직접이미지를표시할수있게되었습니다. 또한 Windows Vista 에서는 CommandLink 와 SplitButton 스타일을지원합니다. TButton 의 UI 강화 TLinkLabel 컴포넌트 TLinkLabel 컴포넌트는 Text 내의 <a> 태그내용을링크로표시해주며클릭했을때 OnLinkClick 이벤트를발생시켜줍니다. TRichEdit 기능강화 윈도우리치에디트 (RichEdit) 2.0 스펙을지원합니다. 5
리스트뷰에서아이템들의그루핑을지원합니다. TListView 그루핑 TProgressBar 는이제테마룩, 마키그리고스무스모드스타일을지원합니다. 그리고비스타에서는일시정지 (Pause) 및중지 (Stopped) 상태가지원됩니다. TProgressBar 기능강화 TEdit 에추가된 NumbersOnly 프로퍼티는에디트에숫자만입력되도록제한하는기능을가집니다. TEdit 의 NumbersOnly TextTip 은 TEdit 나 TComboBox 가비어있고포커스가없을때힌트를텍스트로표시합니다. TEdit 의 TextHint 6
VCL 애플리케이션에기본적으로테마지원 모든 VCL 애플리케이션은기본적으로테마를지원합니다. 기존애플리케이션의경우새버전으로임포트하면테마를지원하지않도록설정되지만 Project Options Application Enable Runtime Themes 옵션을이용하면간단히테마를적용할수있게됩니다. 이렇게하면 IDE 에서는애플리케이션에테마기능을적용하기위해프로젝트리소스파일에메니페스트파일을포함시켜줍니다. TForm 클래스에 GlassFrame 이라는프로퍼티가추가되었으며, 이프로퍼티는폼에윈도비스타에서도입된에어로글래스효과를적용할수있게해줍니다. TForm.GlassFrame 프로퍼티 TTaskDialog 컴포넌트는비스타에서새로도입된태스크다이얼로그기능을사용할수있게해주는컴포넌트입니다. 개발자는오브젝트인스펙터를이용하여 TaskDialog 의모양을커스터마이즈할수있습니다. TTaskDialog 7
윈도비스타에새로도입된파일오픈다이얼로그기능을사용하려면 TFileOpenDialog 컴포넌트를사용하십시오. TFileOpenDialog 및 TFileSaveDialog TDockTabSet 은폼의좌, 우측가장자리에탭셋의형태로도킹가능한폼입니다. 아래주소에자세한사용법이안내되어있습니다. http://dn.embarcadero.com/article/33446 TDockTabSet 8
SnapBuffer / ScreenSnap 프로퍼티 TForm 클래스의 SnapBuffer 와 ScreenSnap 속성은폼이스크린의가장자리에가까이가면자동으로붙는자석효과를줄수있습니다. 데모보기 TFlowPanel 은 TPanel 컴포넌트에서파생되었으며 FlowStyle 프로퍼티의값에따라내부에컨트롤들을배치할수있습니다. 기본값은 fsleftrighttopbottom 인데이는 TFlowPanel 내에좌상단에서부터우하단반향으로배치함을의미합니다. TFlowPanel 의기능은웹브라우저에서텍스트등의요소들과유사합니다. TFlowPanel TGridPanel 은내부의각컴포넌트들이그리드의각셀에위치하도록해주는패널컨트롤입니다. 그리드패널을이용하면개발자는패널위의행수와열수를지정할수있으며, 각컴포넌트들은마우스로어디로배치하든관계없이그리드의다음빈셀에위치하게됩니다. 각그리드셀에이미컨트롤이배치된후에새로컨트롤을추가하면새컨트롤의위치는 ExpandStyle 프로퍼티에따라결정됩니다. 예를들어 ExpandStyle 프로퍼티가기본값인 emaddrows 로지정되어있는경우에는그리드에새로운행이추가되고새행의각셀들에새로운컨트롤들을받아들일수있게됩니다. TGridPanel 9
The TCategoryButtons 컨트롤은델파이 IDE 의새로운툴팔레트와같은버튼모음을만들수있게해줍니다. 컨트롤은카테고리를포함할수있으며각카테고리는버튼을포함합니다. 카테고리의색상을변경할수도있습니다. 다양한프로퍼티를이용해서컨트롤의모양을변경할수있습니다. 원한다면카테고리는실행시에위치를변경할수있으며개개의버튼은카테고리내에서이동이나복제가가능합니다. TCategoryButtons TTrayIcon 컴포넌트는 VCL 애플리케이션이태스크트레이에아이콘을넣을수있도록해줍니다. 이컨트롤은풍선도움말과팝업메뉴를지원합니다. TTrayIcon VCL 인텔리마우스 API 를지원합니다. 예를들어아래그림처럼 TMemo 컴포넌트위에서마우스중앙버튼을누르면사용자로하여금메모내에서스크롤링하기위해마우스를사용할수있도록해줍니다. 델파이코드에디터도이기능을지원합니다. 인텔리마우스지원 10
모든 VCL 컨트롤에 Padding 및 Margin 프로퍼티가추가되었습니다. 이두프로퍼티는 HTML 에서와비슷하게동작하는데, Padding 은컨테이너컨트롤이내부의컨트롤과가지는여유공간의픽셀길이입니다. Margin 프로퍼티는컨트롤의바깥여유공간입니다. 컨트롤의 AlignWithMargins 프로퍼티가 True 로지정되고 Align 프로퍼티가 alnone 이아닌값으로지정되면해당컨트롤의 Margin 프로퍼티값에따라배치됩니다. Margin, AlignWithMargins, Padding 예를들어, 그림은폼위에있는 TPanel 을보여줍니다. 이패널은 Align 이 alclient 로, AlignWithMargins 속성이 True 로지정되었으며, Margin 속성은 20 으로지정된상태입니다. 또한폼의 Padding.Bottom 속성은 30 으로지정되었습니다. AlignWithMargins 와 Margin 속성을이용하면기존의 Align 속성만이용할때보다훨씬쉽고풍부하게컨트롤들을배치할수있습니다. GIF, PNG 이미지지원 많은 RTL 함수를 FastCode 프로젝트함수로대체 bmp, jpeg 이미지지원에이어, 이제 VCL 에서 PNG 및 GIF 이미지포맷도지원됩니다. 또한이미지리스트컴포넌트에서 png 파일을직접읽어들일수있어전보다더편리하게되었습니다. 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 로하면됩니다. 11