Q&A

  • ListBox 문제좀 도와주세요
색까을 넣기 위해서

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 에다 마우스로 클릭을 하면 에러가 나옵니다(연산잘못에러)

윗부분 문제인지 아시는분 도와주세요

1  COMMENTS
  • Profile
    최용일 2000.04.01 15:20
    안녕하세요. 최용일입니다.



    아래의 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 에다 마우스로 클릭을 하면 에러가 나옵니다(연산잘못에러)

    > 윗부분 문제인지 아시는분 도와주세요

    • 김진호
    • 2000.04.01 19:56
    • 3 COMMENTS
    • /
    • 0 LIKES
    • blueSky
      2000.04.01 20:18
      김진호 wrote: > 탭키를 못쓰게 하려고 합니다. 그래서 keydown이벤트의 설정을 해 놨는데 탭키는 계속 작...
    • 김진호
      2000.04.01 20:43
      답변 감사합니다. 이것을 특정 컴포넌트에만 적용시킬수 있나요? 예를 들면 Edit1에만 탭키를 disabl...
    • blueSky
      2000.04.01 22:42
      김진호 wrote: > 답변 감사합니다. > > 이것을 특정 컴포넌트에만 적용시킬수 있나요? > > 예를 들...
    • 정연
    • 2000.04.01 19:19
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김형선
      2000.04.01 21:56
      정연 wrote: > NAME 필드가 없다구 하네요 --;;; > > 방법을 못찾겠어요 제가 답변을 해도 되는지 ...
    • nilriri
      2000.04.01 18:26
      procedure TForm1.Timer1Timer(Sender: TObject); begin button1click(button1); //1분이 되면 타이...
    • 이수정
      2000.04.01 18:51
      nilriri wrote: > procedure TForm1.Timer1Timer(Sender: TObject); > begin > button1click(button...
    • nilriri
      2000.04.02 05:29
      이수정 wrote: > nilriri wrote: > > procedure TForm1.Timer1Timer(Sender: TObject); > > begin > > ...
    • 박종삼
    • 2000.04.01 13:06
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2000.04.01 15:20
      안녕하세요. 최용일입니다. 아래의 SendMessage를 빼셔야 겠는데요. SendMessage를 넣으시면 일종의 ...
    • 최용일
      2000.04.01 13:05
      안녕하세요. 최용일입니다. 컨트롤이 포커스를 받을때 실행되는 이벤트는 OnEnter입니다. 포커스를 잃을...
    • 급합
    • 2000.04.01 11:30
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2000.04.01 15:27
      안녕하세요. 최용일입니다. 코딩을 어떻게 하셨는지는 잘 모르겠지만. 리스트뷰에서 아이템의 추가, 삭...
    • 이경문
      2000.04.19 17:07
      TEnhWavein, TEnhWaveOut : 세어웨어, 소스없슴, 다운 잘됨 TAudio(Hakan Bergzen) : 프리웨어, 소스있슴,...
    • nuki
      2000.04.02 09:29
      델파인 wrote: > 안녕하세요.. > 퀵리포트상에 QRmemo와 QRImage를 위치를 시켜놓고요.. > 퀵리포트 폼...
    • 조규춘
      2000.04.01 11:22
      델파인 wrote: > 안녕하세요.. > 퀵리포트상에 QRmemo와 QRImage를 위치를 시켜놓고요.. > 퀵리포트 폼...
    • 안정한
      2000.04.01 12:09
      with dm.q_family do begin st := '가족관계'; Close; ...
    • 정연
      2000.04.01 19:50
      안정한 wrote: > with dm.q_family do > begin > st := '가족관계'; > ...
    • 창봉이
    • 2000.04.01 07:29
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 조규춘
      2000.04.01 08:39
      창봉이 wrote: > 델파이 객체지향에 대해서 아무거나 좀 글좀 올려 주세여.. > > 부탁드립니다... ...
    • zoro
    • 2000.04.01 04:23
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 안정한
      2000.04.01 04:27
      8개가 더 될수도 있으니... Query1.close; SQL문장 Query1.open while not Query1.eof do begin ...
    • 파란달
    • 2000.04.01 04:03
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2000.04.01 05:31
      9435번에 실행시 컨트롤의 크기를 조절하는 예제가 있습니다. 참조하세요. 조절점이란 검색어로 검색하...
    • 파란달
      2000.04.01 11:53
    • 민은홍
    • 2000.04.01 03:27
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 하얀까마귀
      2000.04.01 03:33
      안녕하세요 하얀까마귀 입니다. List index out of bounds(0) 에러는 리스트형 그러니까 콤보박스 ...
    • Ghost lee
    • 2000.04.01 03:17
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 조규춘와 언주
      2000.04.01 04:24
      Ghost lee wrote: > 제 자리에 있는 컴퓨터에서 실행시키면 잘 되던 프로그램이 다른 컴퓨터로 옮기면 실...
    • 조규춘
      2000.04.01 07:55
      규추니 또 왔습니다. '에러메시지는 vcl40.bpl을 찾을 수 없다구 뜨는데... 아마 런타임패키지로 해서 ...
    • 하얀까마귀
      2000.04.01 03:36
      안녕하세요 하얀까마귀 입니다.. 그 파일을 해당 컴에 복사하면 되구요... 이걸 자동으로 하기 위해서 ...
    • 델초.
    • 2000.04.01 03:01
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 안정한
      2000.04.01 04:21
      다음과 같이 사용하면 동적으로 정렬을 시킬 수 있을 겁니다. 아니면 이 곳 QA게시판에 DBGRID 동적으로...
    • 하얀까마귀
      2000.04.01 03:34
      안녕하세요 하얀까마귀 입니다. 디비 그리드에서 정렬은 안됩니다. 정렬을 하고 싶으시면 연결된 Tab...
    • 최은정
    • 2000.04.01 03:00
    • 2 COMMENTS
    • /
    • 0 LIKES
    • k
      2000.04.01 03:43
      최은정 wrote: > 실제 per_sex라는 필드는 varchar(1) 인데..... ex) 0:남자 > ...
    • 최석기
      2000.04.01 03:33
      최은정 wrote: > 실제 per_sex라는 필드는 varchar(1) 인데..... ex) 0:남자 > ...