Q&A

  • 디비그리드에서 2번째 셀에 이미지를 넣고 싶은데요
procedure Tfrmpopup.RxDBGrid1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
var dDateS,dDateE : String;
begin
  with RxDBGrid1.Canvas do
  begin
    RxDBGrid1.Col := 1;
    dDateS := qrynoticenotice_Date.Value;
    dDateE := FormatDateTime('YYYYMMDD',now -3);
    if dDateS >= dDateE Then
    begin
      Draw(Rect.Left,Rect.Top,Image1.Picture.Graphic);
    end;
  End  
end;

위처럼 하니깐 맞는 그리드에 각각 셀에 몽땅 그리이 나오네요 각 필드마다
전~ 특정 셀에만 그림이 나오게끔 하고 싶은뎅 구현이 안되네요~ 요기에서 막혀서요
예>   -------------------------------------
            제  목             내용
        --------------------------------------
            우리나라        몰라요
            금나와라        안나와
            그럴까낭        몰라야
        ---------------------------------------

이런 디비 그리드가 있을때

         -------------------------------------
            제  목             내용
        --------------------------------------
            우리나라        몰라요(그림)
            금나와라        안나와(그림)
            그럴까낭        몰라야
        ---------------------------------------
위처럼 내용 셀 컬럼쪽만 그림이 나오게끔 하고 싶습니다.
위에 문법 처럼 하니
        -------------------------------------
            제  목             내용
        --------------------------------------
            (그림)우리나라        (그림)몰라요
            (그림)금나와라        (그림)안나와
            그럴까낭              몰라야
        ---------------------------------------

위처럼 되더라구요~ 어떻게 수정 해야 하는지요~
고수님의 조언 부탁 합니다.


3  COMMENTS
  • Profile
    aiman 2007.05.15 19:09
    컬럼 구분이 필요할 것 같네요.


    즉, 내용 컬럼에만 그림을 Draw해야 하는데, DrawColumnCell은 모든 Column Draw때 Call이 되니까
    결과적으로 모든 컬럼에 그림이 그려지겠네요.
    DataCol: Integer; Column: TColumn 파라메터를 참고하세요.

    또한 내용 앞이 아닌 뒤에 그림을 그리고자 하기때문에...
    Draw(Rect.Left,Rect.Top,Image1.Picture.Graphic);
    Rect.Left를 값에서 내용 문자열의 길이를 고려해서
    즉, Rect.Left + (내용문자열길이)  그려야 할 겁니다.

    그럼 즐프하세요...




  • Profile
    이승규 2007.05.15 21:09
    음 아무리 이렇게 저렇게 해봐도 안되는뎅
      Draw(Rect.Left,Rect.Top,Image1.Picture.Graphic);
    이부분에서 어디를 바꿔야 하나요?
    아니면
    DataCol: Integer; Column: TColumn  
    이부분은 어디에서 어떻게 셋팅해야 하나요?

  • Profile
    aiman 2007.05.15 23:37
    간단하게 샘플을 만들어 봤습니다.

    첨부된 파일을 참고하세요... ^^

    그럼 즐프하세요.