Q&A

  • DBGrid의 Record별 색상 변경에 따른 문제점
안녕하세요.



Delphi5를 사용하는 초보입니다.

이 곳 Q&A를 통하여 DBGrid에서의 Color를 변경시키는 여러가지 질문과 답변을

살펴 보고 제가 실제로 작업을 하여 알게된 문제점을 여쭤보고자 합니다.

다름이 아니라 전 DBGrid에서 각 Record별로 색상을 변경하려고 합니다.

이 곳의 몇군데에서 이에 대한 해답을 찾을수 있었으나 문제는 DBGrid에 있는듯

하여 좀더 자세히 알고 싶어 질문을 드립니다.

DBGrid를 가져다 놓고 OnDrawDataCell Event에서 다음과 같이 작업을 하면 아무런

문제가 되지 않고 변경된 색상으로 잘 보여지더군요.



procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;

Field: TField; State: TGridDrawState);

var

FieldValue: String;

begin

FieldValue := Field.DataSet.FieldByName('Code').AsString;

if FieldValue = '0' then begin

(Sender as TDbGrid).canvas.brush.Color := $0080FFFF;

(Sender as TDbGrid).canvas.font.Color := clBlack;

(Sender as TDbGrid).canvas.FillRect(Rect);

(sender as TDbGrid).DefaultDrawDataCell(Rect,Field,State) ;

end else begin

(sender as TDbGrid).DefaultDrawDataCell(Rect,Field,State) ;

end;

end;



그런데 DBGrid의 Inspector Option에서 dgRowSelect, dgAlwaysShowSelection을

True로 변경한후에 Run을 하면 색상이 변경된 부분에선 Row Color가 되질 않아요

물론 Row Color 또한 사용자 임의로 바꿔서 사용할 수 있으면 더욱 좋아요.

하지만 현재 Default로 지정된 짙은 파란색의 Row Color가 조건에 따라 변경된

Record에서는 아무런 색변화가 나타나지 않고 사용자가 변경한 Record Color로

보여 집니다.

그리고 가장 큰 문제점으론 DBGrid의 Columns를 나눠서 각 Columns의 Title명을

기술하가 위해 DGBrid의 Columns Editor 메뉴를 호출하여 작업을 하게되면 상위에서

기술한 OnDrawDataCell Event에서 기술한 색상의 변환이 전혀 먹히질 않아요.



많은 고수님들의 명쾌한 해답을 부탁드립니다.



0  COMMENTS
    • zerodog
    • 2001.02.12 04:04
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 초보
      2001.02.12 18:39
      zerodog wrote: > formatfloat('###,###,###',Float형 변수) > 이런식으로 쓰면된다고 하는데여... 제가 ...
    • 홍세비
      2001.02.12 19:38
      장우석 wrote: > var > S: String; > A: array[0..8] of Char; > KeyValue: array[0..8] of inte...
    • 정일준
    • 2001.02.12 02:01
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 델사랑
      2001.04.11 01:21
      먼저 quickrep의 detailband에 QRLable을 가져다 놓습니다. 그리고 privete에서 j를 integer로 선언합니다...
    • 델사랑
      2001.04.11 01:18
      quickrep에 needdate에 간단한 코딩을 해주면 됩니다. 먼저 private 에서 i를 선언해줍니다. 그리고 b...
    • 이종현
      2001.02.12 04:03
      정일준 wrote: > 어떻게 해야 되죠??.. > > 온통 DB 연동해서 하는것 밖에 없네요.. > > 찾다찾다 ...
    • 델사랑
      2001.04.11 01:22
      먼저 quickrep의 detailband에 QRLable을 가져다 놓습니다. 그리고 privete에서 j를 integer로 선언합니다...
    • 초보
      2001.02.12 18:58
      hackdibs wrote: > 공부를 하다보니깐요.. > begin > Label1.Caption := '....'; > end; > 이...
    • 정대연
      2001.02.14 01:40
      이선주 wrote: > 정말 이해가 안갑니다.저는 ADO를 써서 프로그램을 만들었는데 > 프로그램에서 하나는 ...
    • 초보
      2001.02.12 19:09
      이선주 wrote: > 정말 이해가 안갑니다.저는 ADO를 써서 프로그램을 만들었는데 > 프로그램에서 하나는 ...
    • 나도초보
      2001.02.12 18:53
      저도 초보라 도움이 될지 모르겠네요~ ^^; 전반적인 어떻게 코딩을 하셨는지 파악이 잘 안되서 잘 모르겠...
    • 서록
      2001.02.11 20:00
      미국에 있는 서버로 연결되기 위해선 미국과 케이블이 연결되어 있겠죠? 외국으로 연결하기 위해서 그렇기...
    • eewook
    • 2001.02.11 01:46
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 서록
      2001.02.11 19:54
      POSUSB 드라이버를 이용하시면 간단합니다. 물론 HID를 이용하시는것두 있지만 제어루틴들이 필요하게 되...
    • eewook
      2001.02.14 06:57
      서록 wrote: > POSUSB 드라이버를 이용하시면 간단합니다. > 물론 HID를 이용하시는것두 있지만 제어루틴...
    • 왕초보
    • 2001.02.11 00:58
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 기상원
      2001.02.11 06:59
      시리얼 통신으로 시스템 제어가 가능 하더군요.. 전.. 8051 하구 통신 을 해 봤습니다.. 19200 bps 정도 까...
    • 최시영
      2001.02.12 18:17
      컴퓨터 인터페이스 카드로 직접 보드의 어드레스랑..데이터도 제어 가능합니다... 이것으로 오슬로스코프...
    • 델초보
    • 2001.02.11 00:56
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 김기수
      2001.04.06 08:32
      델초보 wrote: > 시리얼통신으로 LED를 제어할려구 합니다. > 시리얼케이블로 연결은 했는데, 연구자료로...
    • 김기수
      2001.04.06 08:35
      김기수 wrote: > 델초보 wrote: > > 시리얼통신으로 LED를 제어할려구 합니다. > > 시리얼케이블로 연결...
    • kylix
      2001.02.11 01:20
      허허허~~ 질문이 너무 추상적이군요... 추상적인 답변을 할께요... LED가 어떤 신호에 응답해서 불이...
    • 정대연
      2001.02.14 02:04
      천사의 마을 wrote: > 다들 즐플하고 계시죠?? 기온도 많이 올라가고 낮잠자기에도 좋고, 특히 데이트하...
    • 천사의 마을
      2001.02.14 04:58
      대현님의 답변 감사드립니다!!!! 이제서야 게시물을 보고 감사인사 드리는점 죄송합니다. 플밍을하면서 ...
    • 버드
    • 2001.02.10 23:29
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 이기준
    • 2001.02.10 21:38
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 도지성
      2001.02.11 09:11
      이기준 wrote: > winamp처럼 녹음시 이퀄라이져 기능은 어떻게 구현하나요? winamp 는 어떻게 하는지 ...
    • major
      2001.02.11 00:56
      아보가드로 wrote: > 두개의 table에서 읽어와서 출력을 하려고 합니다. 두 테이블은 전혀 연관이 없구 >...
    • 아폴론
      2001.02.10 23:57
      아보가드로 wrote: > 두개의 table에서 읽어와서 출력을 하려고 합니다. 두 테이블은 전혀 연관이 없구 >...
    • sonwow
    • 2001.02.10 19:06
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 정성훈
      2001.02.10 22:24
      sonwow wrote: > ms-sql7.0 을 98에 설치후 > 98에서 클라이언트 접속방법좀 알려주세요...... 안녕...
    • 안익환
      2001.02.10 19:40
      안익환 wrote: > 안녕하세요? > 처음 질문을 올립니다. 이렇게 올리게 된건 이곳을 게시판을 뒤져봐도 ...