Q&A

  • 리스트박스아이템별 색깔 주는 방법없나요
안녕하세요..

새해 복 많이 받을거죠..

리스트박스 아이템별 색깔을 주고 싶은데 어떻게해야하나요...

예를 들면 1행은 빨강색 2행은 노랑색...

아시는 분 계시면 답글 달아 주세요..예....
1  COMMENTS
  • Profile
    소울해커 2004.01.08 22:02
    ListBox의 Style을 lbOwnerDrawFixed이나 lbOwnerDrawVariable로 잡고
    OnDrawItem 에다가 코딩으로 색칠해 줘야합니다.

    procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
      Rect: TRect; State: TOwnerDrawState);
    var CellStr: String; LeftPos: Integer;
    begin
         with ListBox1.Canvas do begin
              Brush.Color := TColor($00E4F3E6);
              if Index Mod 2 = 0 then Brush.Color := TColor($00CDEFAB);
              if odSelected in State then Brush.Color := TColor($00C2E79E);
              Font.Color := clBlack;
              Font.Size := 8;
              Font.Style := [fsBold];
              CellStr := ListBox1.Items.Strings[Index];
              LeftPos := ((Rect.Right - Rect.Left - TextWidth(CellStr)) div 2) + Rect.Left;
              FillRect(Rect);
              TextRect(Rect, LeftPos, Rect.Top + 2, CellStr);
         end;
    end;

    에제는 기본적으로 모두다 색칠하고
    리스트의 행이 짝수행일때와 리스트에서 아이템을 선택했을때의
    색칠에 대한것입니다.


    [팁]그리드 계열의 색상 변경 및 동적으로 컬럼 넓이 조절

    팁란을 찾아보시면 소울해커라는 넘이 이런걸 올려놨습니다.
    조금만 생각해보면 여러가지 응용이 가능하니까 해보세요.

    그리고 전 새해복 못 받고 있습니다.
    취업되면 새해복 받는건데...

    >안녕하세요..
    >
    >새해 복 많이 받을거죠..
    >
    >리스트박스 아이템별 색깔을 주고 싶은데 어떻게해야하나요...
    >
    >예를 들면 1행은 빨강색 2행은 노랑색...
    >
    >아시는 분 계시면 답글 달아 주세요..예....