http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_qna&no=76478
콤보박스 에서 아이템별로 색상 ( 또는 다른거... ) 을 변경하고 싶으면.. Style 을 csOwnerDrawFixed 로 변경하고 OnDrawItem 에서 코딩으로 처리 하면 된다. -- Style 에 따라 달라지니 다른 스타일도 참고해보자. --
보통 OwnerDraw 로 검색하면 될꼴...
Items 에 RED, BLUE, YELLOW 라고 있다고 하고 Events 탭에서 OnDrawItem 을 더블클릭해서 이벤트 프로시져를 만들어보자.
procedure TForm1.ComboBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
var
cItemText: string;
vCB: TComboBox absolute Control; // 타입캐스팅을 하기 귀찮으니 absolute 로...
cColor: TColor;
begin
cItemText:= vCB.Items[ Index ]; // Items 에서 값을 가져와서 값에 색상을 정한다.
if cItemText = 'RED' then
cColor:= clRED
else if cItemText = 'YELLOW' then
cColor:= clYellow
else if cItemText = 'BLUE' then
cColor:= clBlue;
//canvas 를 조작하여 색상을 설정하고 문자열을 찍어준다. 배경색등 각종설정을 원하는대로 설정
vCB.Canvas.Font.Color:= cColor;
vCB.Canvas.FillRect( Rect );
vCB.Canvas.TextOut(Rect.Left+10, Rect.Top, cItemText );
end;
TListBox 도 한번 해보자...
반응형
'삽질' 카테고리의 다른 글
키움증권 해외파생 - OpenAPI(w) 자동로그인/계좌비번설정 자동화 (0) | 2024.02.26 |
---|---|
NeuroTechonology FingerPrint SDK 13 이용기 (1) | 2023.06.01 |
delphi - cxGrid - row별 Column implement editior 설정. (0) | 2022.06.24 |
git - 토큰 인증. (0) | 2022.04.14 |
delphi - dbgrid double click 시 col, row 번호 구하기 (0) | 2021.07.20 |