Q&A

  • StringGrid 정렬시
procedure Tsjsj03frm.Detail_SGDrawCell(Sender: TObject;

ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);

begin

if (ARow = 0) then //타이틀을 가운데로 정렬한다.

begin

with Detail_SG do

begin

FillRect(Rect); //1번

Rect.Left := (Rect.Left + Rect.Right - TextWidth(Trim

(Detail_SG.Cells[Col, Row]))) Div 2; //2번

TextRect(Rect, Rect.Left, Rect.Top + 3, Trim

(Detail_SG.Cells[Col, Row])); //3번

end;

end

else

begin

if (ACol in [2, 3, 4]) then

begin //숫자가 들어가는 CELL은 우측으로 정렬한다.

with Detail_SG do

begin

FillRect(Rect);

Rect.Left := Rect.Right - TextWidth(Trim

(Detail_SG.Cells[Col, Row])) - 3;

TextRect(Rect, Rect.Left, Rect.Top + 3, Trim

(Detail_SG.Cells[Col, Row]));

end;

end;

end;

end;



위와 같이 델파이 4.0에서 사용하던 루틴을 그래도 사용했습니다.



Col, Row가 ACol, ARow로 바뀌어서 바꿨습니다만,



1번에서는 Incompatible types : 'HDC' and 'TRect'

2번에서는 Undeclared identifier : 'TextWidth'

3번에서는 Undeclared identifier : 'TextRect'라는 에러가 발생합니

다.



이 부분도 다르게 바꾸어야 하는지요?



1  COMMENTS
  • Profile
    이만준 2000.03.04 02:35
    황선희 wrote:

    > procedure Tsjsj03frm.Detail_SGDrawCell(Sender: TObject;

    > ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);

    > begin

    > if (ARow = 0) then //타이틀을 가운데로 정렬한다.

    > begin

    > with Detail_SG do

    > begin

    > FillRect(Rect); //1번

    > Rect.Left := (Rect.Left + Rect.Right - TextWidth(Trim

    > (Detail_SG.Cells[Col, Row]))) Div 2; //2번

    > TextRect(Rect, Rect.Left, Rect.Top + 3, Trim

    > (Detail_SG.Cells[Col, Row])); //3번

    > end;

    > end

    > else

    > begin

    > if (ACol in [2, 3, 4]) then

    > begin //숫자가 들어가는 CELL은 우측으로 정렬한다.

    > with Detail_SG do

    > begin

    > FillRect(Rect);

    > Rect.Left := Rect.Right - TextWidth(Trim

    > (Detail_SG.Cells[Col, Row])) - 3;

    > TextRect(Rect, Rect.Left, Rect.Top + 3, Trim

    > (Detail_SG.Cells[Col, Row]));

    > end;

    > end;

    > end;

    > end;

    >

    > 위와 같이 델파이 4.0에서 사용하던 루틴을 그래도 사용했습니다.

    >

    > Col, Row가 ACol, ARow로 바뀌어서 바꿨습니다만,

    >

    > 1번에서는 Incompatible types : 'HDC' and 'TRect'

    > 2번에서는 Undeclared identifier : 'TextWidth'

    > 3번에서는 Undeclared identifier : 'TextRect'라는 에러가 발생합니

    > 다.

    >

    > 이 부분도 다르게 바꾸어야 하는지요?

    >





    안녕하세요..



    > with Detail_SG do ==> with Detail_SG.Canvas do



    이렇게 고치면 되겠네요...

    다들 TCanvas 에 있는 것들이네요..



    그럼