본문 바로가기
Delphi Tip/그리드

StringGrid Row색칠/정렬 하기

by MonoSoft 2024. 4. 15.
728x90
반응형

StringGrid Row색칠/정렬 하기

 

728x90

 

 

procedure Tfrm_xxx.Grid_ListDrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);

var

Ls_mt_kbn : String;

LeftPos: Integer;

TopPos : integer;

CellStr: string;

begin

Ls_mt_kbn := Grid_List.Cells[16,ARow];

if (ACol >= Grid_List.FixedCols) and (ARow >= Grid_List.FixedRows) then

with Grid_List.Canvas do

begin

if Ls_mt_kbn = 'M' then

Brush.Color := clSkyBlue;

if Ls_mt_kbn = 'N' then

Brush.Color := clAqua;

CellStr := Grid_List.Cells[ACol, ARow];

TopPos := ((Rect.Top - Rect.Bottom - TextHeight(CellStr)) div 2) + Rect.Bottom;

 

case ACol of

{왼쪽정렬}

0,1 : LeftPos := Rect.Left + 5;

{가운데정렬}

2,8,11,12,13 : LeftPos := ((Rect.Right - Rect.Left TStringGrid(Sender).Canvas.TextWidth(CellStr)) div 2) + Rect.Left;

{오른쪽정렬}

else LeftPos := (Rect.Right - Rect.Left TStringGrid(Sender).Canvas.TextWidth(CellStr)) + Rect.Left - 6;

end;

FillRect(Rect);

TextOut(LeftPos, TopPos, CellStr);

end;

end;

 

728x90
반응형

댓글