Firemonkey Stringgrid Rowlines仅作为屏幕宽度绘制

时间:2015-11-17 15:18:02

标签: android delphi grid

我正在使用Delphi XE7 UP1& amp ;; Delphi 10 Seattle for Android& IOS。使用Stringgrid显示数据,在stringgrid i' ve 7列,直到第4列它适合我需要向左滑动的其他列的屏幕,使用AlternatingRowBackground为true,直到第4列系统绘制ColLines,RowLines和Alternate颜色就好了,但是当我向左滑动以查看其他列ColLines,RowLines和Alternate颜色消失时,我的意思是只有列标题和白页。请看截图: from column 1 to 4 from column 4 to 7 and lines are gone 所以我已经尝试过stringgrid1.repaint - StringGrid1.RealignContent - StringGrid1.UpdateEffects - updatecolumns等等,但没有任何效果,据我所知,系统绘制行和列线到屏幕的宽度。是否有任何解决方法可以在所有网格中保留颜色,行和列线?

提前致谢,抱歉英语不好:)

1 个答案:

答案 0 :(得分:0)

如果将来有人需要,这是解决方案

procedure TForm1.StringGrid1DrawColumnCell(Sender: TObject; const Canvas: TCanvas; const Column: TColumn; const Bounds: TRectF; const Row: Integer; const Value: TValue; const State: TGridDrawStates);
var
  T, T2: TRectF;
begin
  if Row mod 2 = 1 then
  begin
    with Canvas do
    begin
      Fill.Kind := TBrushKind.Solid;
        Fill.Color := $FFF5802D;
    end;

    T := Bounds;
    if TStringGrid(Sender).ColumnCount - 1  = Column.Index then
      T.Right := Self.Width;
    Canvas.FillRect(T, 0, 0, [], 0.5);
  end;

end;