Jump to content
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr ×
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr
  • 0

델파이 12 스트링그리드 겹치는 현상


김승연

질문

델파이 5 -> 12로 마이그레이션을 진행을 하였는데, 12에서 스트링그리드가 글자가 겹치는 현상이 나타납니다.

그리드의 Drawing style 을 gdsClassic 으로 지정하면 겹치는 현상이 안 나는데 테마로 지정을 하면 겹치는 현상이 납니다.

어떻게 처리해야 할까요 ?

이 댓글 링크
다른 사이트에 공유하기

3 answers to this question

Recommended Posts

  • 0
procedure TForm.FormCreate(Sender: TObject);
begin
  Grdbody.cells[00,00]:= '순번';
  Grdbody.cells[01,00]:= '자료구분';
  Grdbody.cells[02,00]:= '생성일자';
  Grdbody.cells[03,00]:= '자료명';
  Grdbody.cells[04,00]:= '자료크기(건수)';
  Grdbody.cells[05,00]:= '수신선택';
end;

procedure TForm.GrdbodyDrawCell(Sender: TObject; Col, Row: Integer;
  Rect: TRect; State: TGridDrawState);
var
  valign : word;
begin
  // ---------------------------------------------------------------------------
  if   (row = 0)or(Col = 0) then
  begin
     Grdbody.canvas.font.color  := clBlack;
  end;
  // -------------------------------------------------
  //  2라인마다 색상 구분한다
  // -------------------------------------------------
  W_line  := Row - ((Row div 2) * 2);
  //
  if  (Row > 0) and (Col > 0) and (W_line = 0) then
  begin
    Grdbody.canvas.brush.color := $00F2F2F2;
    Grdbody.canvas.font.color  := clBlack;
  end;
  // 파일명 별 색상
  if  (Col = 3) then
  begin
    if (Grdbody.cells[07,row] = 'Blue') then
        Grdbody.canvas.font.color  := clBlue;
  end;
  //----------------------------------------
  if   (row > 0) and (Col > 0)then
  begin
    if  (Grdbody.cells[06,row] = '*') then
    begin
       Grdbody.canvas.brush.color := Clblue;
       Grdbody.canvas.font.color  := clwhite;
    end;
    //
    if  (Grdbody.cells[05,row] = '수신완료')      or
        (Grdbody.cells[05,row] = '수신완료')then
    begin
      if  Col = 5 then
          Grdbody.canvas.font.color  := clBlue
    end
    else
    begin
      if  (Grdbody.cells[05,row] = '수신불능')             or
          (Grdbody.cells[05,row] = '파일없음(재수신요망)') or
          (Grdbody.cells[05,row] = '확인자료 삭제')    or
          (Grdbody.cells[05,row] = '재수신 폴더로 전환')   or
          (Grdbody.cells[05,row] = '미 수 신')             then
      begin
        if  Col = 5 then
            Grdbody.canvas.font.color  := clRed;
      end;
    end;
    //
  end;
  //
  valign := settextalign(Grdbody.canvas.handle,ta_center);
  Grdbody.canvas.textrect(rect,(rect.left + rect.right) div 2, rect.top + 1,
  Grdbody.cells[col,row]);
  settextalign(Grdbody.canvas.handle,valign);
  // 우측정렬 (일련번호)
  if  (row > 0) and (col = 0)then
  begin
    if Grdbody.cells[col,row] <> '' then
    begin
      valign := settextalign(Grdbody.canvas.handle,ta_right);
      Grdbody.canvas.textrect(rect,rect.right-5, rect.top + 1,
      formatfloat('##0',StrToFloat(Grdbody.cells[col,row])));
      settextalign(Grdbody.canvas.handle,valign);
    end;
  end;
  // 좌측정렬 (파일 설명)
  if  (Row > 0) and (Col = 3) then
  begin
    valign := settextalign(Grdbody.canvas.handle,ta_left);
    Grdbody.canvas.textrect(rect,rect.left+2,rect.top + 1,Grdbody.cells[col,row]);
    settextalign(Grdbody.canvas.handle,valign);
  end;
end;

코드내용 첨부하여 보내드립니다. 

DefaultDrawing True 입니다. 

이 댓글 링크
다른 사이트에 공유하기

이 토의에 참여하세요

지금 바로 의견을 남길 수 있습니다. 그리고 나서 가입해도 됩니다. 이미 회원이라면, 지금 로그인하고 본인 계정으로 의견을 남기세요.

Guest
이 질문에 답변하기...

×   서식있는 텍스트로 붙여넣기.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   이전에 작성한 콘텐츠가 복원되었습니다..   편집창 비우기

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

중요한 정보

이용약관 개인정보보호정책 이용규칙 이 사이트가 더 잘 작동하기 위해 방문자의 컴퓨터에 쿠키가 배치됩니다. 쿠키 설정 변경에서 원하는 설정을 할 수 있습니다. 변경하지 않으면 쿠키를 허용하는 것으로 이해합니다.