TAdvStringGrid에 입력된 데이터 종류에 따라 폰트 색상을 지정 하는 방법에 대한 샘플 입니다.
값을 양수와 음수로 구별하여 각기 다른 색상을 지정 하게 하였고 앱이 실행된 런타임 상태에서도 색상을 변경 할 수 있게 합니다.
TAdvStringGrid 의 OnGetCellColor 메소드가 사용 되었습니다.
procedure TForm1.Button1Click(Sender: TObject);
var
i, j: Integer;
begin
for i := 1 to AdvStringGrid1.RowCount - 1 do
for j := 1 to AdvStringGrid1.ColCount - 1 do
AdvStringGrid1.Ints[j, i] := Random(1000) - 500;
end;
procedure TForm1.AdvStringGrid1GetCellColor(Sender: TObject; ARow, ACol: Integer; AState: TGridDrawState; ABrush: TBrush; AFont: TFont);
begin
if AdvStringGrid1.Cells[ACol, ARow] <> '' then
if AdvStringGrid1.Ints[ACol, ARow] < 0 then
begin
ABrush.Color := ColorGrid2.BackgroundColor;
AFont.Color := ColorGrid2.ForegroundColor;
end
else
begin
Abrush.Color := Colorgrid1.BackgroundColor;
AFont.Color := Colorgrid1.ForegroundColor;
AFont.Style := [fsBold];
end;
end;
procedure TForm1.ColorGrid1Change(Sender: TObject);
begin
AdvStringGrid1.Invalidate;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Button1Click(Sender);
end;
댓글 없음:
댓글 쓰기