공통 [엠바카데로 Feature Friday][개발팁] VCL 멀티-컬럼(Multi-Column) 리스트 박스
2019.05.24 09:30
윈도우 리스트박스(ListBox) 컨트롤은 문자열 목록을 보여주는 기능입니다.
윈도우 초기 버전 이후, 운영제체(OS)는 여러개의 열을 보여주는 리스트 박스(multi-column list box)를 사용할 수 있는 몇 가지 특별한 기능들을 제공하고 있습니다.
이 기능을 사용해 컨트롤을 만들면 특정 스타일을 적용하거나, 데이터 전달을 위해 특정 윈도우 메세지 (LB_SETCOLUMNWIDTH, LB_SETTABSTOP)를 활용할 수도 있습니다.
좋은 소식은 VCL TListBox 컨트롤이 이 기능을 제공해 활용하기 매우 쉽다는 것입니다.
그러나 아쉬운 점은 문서화가 정확하게 되어 있지 않아 지난 오랜 기간 델파이 개발자들이 어떻게 활용해야 할 지 모르고 있다는 점입니다.
여러 열에 문자열이 표시되는 리스트 박스를 만들어볼까요?
리스트 박스는 세로 스크롤바로 세로로 길게 데이터를 보여주는 방식 대신 사용 가능한 공간 끝까지 문자열을 표시할 수 있습니다. 문자열 양이 화면 공간을 넘어서면 가로 스크롤바가 나타납니다. VCL의 컬럼 속성(Cloumns property)에서 각 문자열들이 나타는 열이 동일한 너비로 표시되도록 설정할 수 있습니다.
샘플 소스코드와 이미지를 참고해보세요:
ListBox1.Columns := 3; for var I := 0 to 30 do ListBox1.Items.Add('hi); |
또 다른 것은 TabWidth 속성을 설정하는 방법이 있습니다.
위 이미지에서 3번째 이미지처럼 보이게 할 수 있는 것입니다 (참고: #9 는 탭을 나타내는 것입니다.)
ListBox1.Tabwidth := 50; ListBox1.Items.Add ('hi' + #9 + 'lo'); ListBox1.Items.Add ('foo' + #9 + 'bar'); ListBox1.Itemas.Add ('ki' + #9 + 'mo'); |
더 많은 정보는 마르코 칸투의 블로그를 통해 확인할 수 있습니다.
아래 링크를 통해 확인해보세요!
엠바카데로 Feature Friday란?
엠바카데로에서 매주 금요일 개발팁을 선정해 보내드리는 기술레터입니다.
데브기어에서는 이 개발팁을 국내 개발자분들도 보기 좋도록 핵심 내용들을 한글화하여 제공하고 있습니다.
엠바카데로의 Feature Friday를 받아보고 싶다면, 지금 메일 주소를 등록해서 기술 정보를 편하게 받아보세요!