이 문서에서는 델파이가 목록 상자의 항목을 구현하여 콘텐츠에 따라 다른 색상을 표시하는 방법을 간략하게 설명합니다. 구현 단계는 다음과 같습니다.
ListBox1의 스타일 속성을 lbOwnerDrawVariable로 변경합니다.
ListBox의 OnDrawItem 이벤트에서 항목의 값에 따라 Canvas 속성을 변경합니다.
샘플 코드는 다음과 같습니다.
절차 TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TownerDrawState);begin //Odd(index)인 경우 글꼴은 원래 기본 색상을 사용합니다. then //항목 인덱스가 홀수일 때의 색상 숫자 시작 listbox1 .Canvas.Brush.Color:=clwindow; ListBox1.Canvas.TextRect(Rect,direct.Left,Rect.Top,ListBox1.Items[index]); end else //항목의 인덱스가 짝수일 때의 색상 start listbox1.Canvas.Brush.Color:=clinactivecaptiontext ; ListBox1 .Canvas.TextRect(Rect,Rect.Left,Rect.Top,ListBox1.Items[index]) end; 상태에서 odSelected 후 //선택 시 색상 start listbox1.Canvas.Brush.Color:=clhighlight; ListBox1.Canvas.TextRect(Rect,ect.Left,Rect.Top,ListBox1.Items[index]);