색까을 넣기 위해서
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
var str:string;
i:integer;
begin
with ListBox1 do
begin
str := Items.Strings[Index];
//요것은 문자열끝에 색상 번호를 같이 붙여서
ColorChk:=strtoint(Copy(str,Length(str),1));
case ColorChk of
0 :Canvas.Font.Color := clBlack ;
1 :Canvas.Font.Color := clRed ;
2 :Canvas.Font.Color := clYellow ;
3 :Canvas.Font.Color := clBlue ;
4 :Canvas.Font.Color := clGreen;
5 :Canvas.Font.Color := clOlive ;
6 :Canvas.Font.Color := clMaroon ;
end;
Canvas.FillRect(Rect);
Canvas.TextOut( Rect.Left, Rect.Top, copy(Items.Strings[Index],0,
length(Items.Strings[Index])-1));
end;
SendMessage(ListBox1.Handle, WM_VSCROLL, SB_BOTTOM, Hwnd(nil));
end;
ListBox Style =lbOwnerDrawVariable 로 했구요
근데 ListBox Items 에다 마우스로 클릭을 하면 에러가 나옵니다(연산잘못에러)
윗부분 문제인지 아시는분 도와주세요
아래의 SendMessage를 빼셔야 겠는데요. SendMessage를 넣으시면 일종의
무한루프처럼 될것같습니다. 그러니까 계속해서 그리기만 할 것같은데..
아직 확인은 안해보았지만 아마도 SendMessage를 빼시면 잘 작동할것입니다.
나머지는 별 이상이 없군요...
그리고 Items.Strings[Index]와 Items[Index]는 똑같은 의미를 가집니다.
타이핑이 좀 줄어들죠...
SendMessage(ListBox1.Handle, WM_VSCROLL, SB_BOTTOM, Hwnd(nil)); //<===
박종삼 wrote:
> 색까을 넣기 위해서
> procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
> Rect: TRect; State: TOwnerDrawState);
> var str:string;
> i:integer;
> begin
>
> with ListBox1 do
> begin
> str := Items.Strings[Index];
> //요것은 문자열끝에 색상 번호를 같이 붙여서
> ColorChk:=strtoint(Copy(str,Length(str),1));
> case ColorChk of
> 0 :Canvas.Font.Color := clBlack ;
> 1 :Canvas.Font.Color := clRed ;
> 2 :Canvas.Font.Color := clYellow ;
> 3 :Canvas.Font.Color := clBlue ;
> 4 :Canvas.Font.Color := clGreen;
> 5 :Canvas.Font.Color := clOlive ;
> 6 :Canvas.Font.Color := clMaroon ;
> end;
> Canvas.FillRect(Rect);
> Canvas.TextOut( Rect.Left, Rect.Top, copy(Items.Strings[Index],0,
> length(Items.Strings[Index])-1));
>
> end;
> SendMessage(ListBox1.Handle, WM_VSCROLL, SB_BOTTOM, Hwnd(nil));
> end;
>
> ListBox Style =lbOwnerDrawVariable 로 했구요
>
> 근데 ListBox Items 에다 마우스로 클릭을 하면 에러가 나옵니다(연산잘못에러)
> 윗부분 문제인지 아시는분 도와주세요