C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[24251] Re:ValueList의 value컬럼에 문자열 대신 콤보박스를 넣고 싶습니다.(인스펙터 처럼) 어떻게 할 수 있겠
김백일.cedar [cedar] 1563 읽음    2003-02-12 18:14
김재호 님이 쓰신 글 :
: ValueList의 value컬럼에 문자열 대신 콤보박스를 넣고 싶습니다.
: 인스펙터에서 보면 스칼라 정보는 그냥 문자열로 표현되고 선택해야하는 것은 콤보박스로 표현되는 등의 기능을 구현하려고 합니다. 또한 트리처럼 계층도 넣고 싶습니다.
: 트리를 사용하는 것은 DrawGrid로 바꿔서 이용할 수도 있겠지만.. 문제는 콤보 박스입니다.

음... TValueListEditor는 C++빌더/델파이 6에서 처음 나온 컨트롤이라 관련 자료가 상당히 부족하지만, TDrawGrid를 비롯한 다른 VCL 컨트롤을 다뤄본 경험이 있다면 그렇게 어렵지는 않습니다.
도움말을 찬찬히 살펴보면 알 수 있는 문제입니다. 간단히 설명하면 다음과 같습니다.

TValueListEditor는 기본으로 콤보박스와 생략버튼([...] 모양 버튼)을 지원합니다.
트리를 사용하는 삽질에 비해서는 엄청 쉽습니다.

이러한 설정은 TValueListEditor의 ItemProps 속성(애석하게도 published 속성이 아니라서 오브젝트 인스펙터에는 안 나옵니다.)을 코딩으로 조작하시면 됩니다.
TItemProp::EditStyle을 esPickList로 지정하고,
콤보박스에 표시할 항목을 넣은 TStringList 객체를 만드신 다음,
TItemProp::PickList 속성에 이 스트링 리스트를 지정하시면 끝납니다.

마찬가지로, 생략버튼을 넣으려면 TItemProp::EditStyle을 esEllipsis으로 지정하고
TValueListEditor::OnEditButtonClick 이벤트 핸들러에서 코딩하면 되겠죠?
트리를 표시하는 게 귀찮으면 이렇게 생략 버튼의 이벤트 핸들러에서 코딩하는 것도 편리한 방법입니다.

이상의 설명에서 모르시는 것은 더 도움말과 인터넷을 더 검색해보시고 다시 질문해보세요.

: 용도에는 ValueList가 더 적당하기는 한데...
: 어떻게 빨리 구현할 방법이 있겠습니까?
: -초보입니다.- 여러 고수님이나 아시는분들께 부탁드립니다.
:
: 난감하군요.. 시간은 별로 없고..
: VC++에서 BCB로 온지 한 3일 되었네요. 툴이 강력한것은 느끼고 있습니다만...
: 기본적으로 제공하는 방법에서 벗어나려니.. 만만치 않네요..
: 시중에는 책도 없구요.. 기본적으로 제공하는 책은 다루는 범위가 너무 방대해서인지..
: 기본적인 내용만 간략하게 있어서.. 별 도움이 안되는것 같군요..
:
: 그럼 다시한번 부탁드립니다.
:
:

+ -

관련 글 리스트
24249 ValueList의 value컬럼에 문자열 대신 콤보박스를 넣고 싶습니다.(인스펙터 처럼) 어떻게 할 수 있겠습니 김재호 704 2003/02/12
24251     Re:ValueList의 value컬럼에 문자열 대신 콤보박스를 넣고 싶습니다.(인스펙터 처럼) 어떻게 할 수 있겠 김백일.cedar 1563 2003/02/12
24257         정말 감사합니다. 김재호 969 2003/02/13
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.