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'라는 에러가 발생합니
다.
이 부분도 다르게 바꾸어야 하는지요?
> 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 에 있는 것들이네요..
그럼