Q&A

  • 리스트박스에서 조건에 맞는 data 색깔주기
리스박스에 data를 뿌린느데 조건에 맞게 색깔을 변경하고 싶은데 잘 않되네여

게시판에서 찾아서 해 보았는데 클릭이벤트가 발생해야만 색깔을 칠하던데..

어떻게 해야 할지..



하고자 하는 방법은

table 에서 직접하던가 아니면 리스트박스에서 조건을 입력하여 처리하려는데여

값 조건

123 1

344 2

555 1

777 1

333 2



이런게 되어 있으면 만약 조건이 1이면 빨간색 2이면 파란색으로 칠하고 싶어여



빠른 답변 부탁드립니다.

2  COMMENTS
  • Profile
    최용일 2001.11.28 23:07
    안녕하세요. 최용일입니다.



    TStrings.AddObject메소드를 이용해서 값과 조건을 같이 넣어주시고요, 리스트박스의



    Style속성을 lbOwnerDrawFixed나 lbOwnerDrawVariable로 맞추어 주신후에 OnDrawItem



    이벤트에서 아래와 같이 코딩해보세요...



    procedure TForm2.FormCreate(Sender: TObject);

    begin

    ListBox1.Items.AddObject('123', TObject(1));

    ListBox1.Items.AddObject('344', TObject(2));

    ListBox1.Items.AddObject('555', TObject(1));

    ListBox1.Items.AddObject('777', TObject(1));

    ListBox1.Items.AddObject('333', TObject(2));

    end;



    procedure TForm2.ListBox1DrawItem(Control: TWinControl; Index: Integer;

    Rect: TRect; State: TOwnerDrawState);

    begin

    TListBox(Control).Canvas.Brush.Color := clWhite; // 배경색

    TListBox(Control).Canvas.FillRect(Rect);

    case Integer(TListBox(Control).Items.Objects[Index]) of // 조건 판단

    1: TListBox(Control).Canvas.Font.Color := clRed; // 폰트색을 빨갛게...

    2: TListBox(Control).Canvas.Font.Color := clBlue; // 폰트색을 파랗게...

    end;

    TListBox(Control).Canvas.TextOut(Rect.Left, Rect.Top, TListBox(Control).Items[Index]);

    end;



    ^^ 항상 즐코하세요...



    델초임당 wrote:

    > 리스박스에 data를 뿌린느데 조건에 맞게 색깔을 변경하고 싶은데 잘 않되네여

    > 게시판에서 찾아서 해 보았는데 클릭이벤트가 발생해야만 색깔을 칠하던데..

    > 어떻게 해야 할지..

    >

    > 하고자 하는 방법은

    > table 에서 직접하던가 아니면 리스트박스에서 조건을 입력하여 처리하려는데여

    > 값 조건

    > 123 1

    > 344 2

    > 555 1

    > 777 1

    > 333 2

    >

    > 이런게 되어 있으면 만약 조건이 1이면 빨간색 2이면 파란색으로 칠하고 싶어여

    >

    > 빠른 답변 부탁드립니다.

  • Profile
    델초임당 2001.11.29 22:29
    최용일님의 도움으로 쉽게 끝맞추게 되었습니다. 정말 감사합니당..



    님도 즐코 하셈..