diff options
Diffstat (limited to 'src/gui')
-rw-r--r-- | src/gui/fpg_basegrid.pas | 10 | ||||
-rw-r--r-- | src/gui/fpg_customgrid.pas | 44 | ||||
-rw-r--r-- | src/gui/fpg_grid.pas | 12 |
3 files changed, 44 insertions, 22 deletions
diff --git a/src/gui/fpg_basegrid.pas b/src/gui/fpg_basegrid.pas index a1cc01d0..6a1fd8b0 100644 --- a/src/gui/fpg_basegrid.pas +++ b/src/gui/fpg_basegrid.pas @@ -392,8 +392,9 @@ begin FFocusRow := 0; if FFocusRow > RowCount-1 then FFocusRow := RowCount-1; - - FollowFocus; + +// FollowFocus; + Update; CheckFocusChange; end; @@ -1150,7 +1151,10 @@ end; procedure TfpgBaseGrid.Update; begin - UpdateScrollBars; + if csUpdating in ComponentState then + Exit; + +// UpdateScrollBars; FollowFocus; RePaint; end; diff --git a/src/gui/fpg_customgrid.pas b/src/gui/fpg_customgrid.pas index b5a6c191..ed3b3a89 100644 --- a/src/gui/fpg_customgrid.pas +++ b/src/gui/fpg_customgrid.pas @@ -123,7 +123,8 @@ begin begin FocusRow := 0; FocusCol := 0; - Repaint; +// Repaint; + Update; end; end; @@ -136,7 +137,8 @@ begin begin TfpgGridColumn(FColumns.Items[i]).TextColor := AValue; end; - Repaint; +// Repaint; + Update; end; function TfpgCustomGrid.GetColumns(AIndex: integer): TfpgGridColumn; @@ -203,10 +205,12 @@ begin // graemeg 2008-07-18: I believe after all the repaint and event fixes // this check is not required anymore. -// if csUpdating in ComponentState then -// Exit; - UpdateScrollBars; - RePaint; + //if csUpdating in ComponentState then + //Exit; + Update; + //UpdateScrollBars; + //RePaint; + end; procedure TfpgCustomGrid.SetRowCount(const AValue: Integer); @@ -220,10 +224,11 @@ begin // graemeg 2008-07-18: I believe after all the repaint and event fixes // this check is not required anymore. -// if csUpdating in ComponentState then -// Exit; - UpdateScrollBars; - RePaint; + //if csUpdating in ComponentState then + //Exit; + Update; +// UpdateScrollBars; +// RePaint; end; function TfpgCustomGrid.GetColumnWidth(ACol: Integer): integer; @@ -246,8 +251,9 @@ begin lCol.Width := 1 else lCol.Width := AValue; - UpdateScrollBars; - Repaint; + Update; + //UpdateScrollBars; + //Repaint; end; end; @@ -268,8 +274,8 @@ begin if lCol.FBackgroundColor <> AValue then begin lCol.FBackgroundColor := AValue; -// UpdateScrollBars; - Repaint; + Update; + //Repaint; end; end; @@ -332,11 +338,11 @@ begin i := FColumns.Add(Result); DoAfterAddColumn(i); // update empty cells in descendants - if csUpdating in ComponentState then - Exit; //==> - - UpdateScrollBars; - RePaint; + //if csUpdating in ComponentState then + //Exit; //==> + Update; + //UpdateScrollBars; + //RePaint; end; procedure TfpgCustomGrid.DeleteColumn(AIndex: integer); diff --git a/src/gui/fpg_grid.pas b/src/gui/fpg_grid.pas index 3eecf7c1..5eda16f7 100644 --- a/src/gui/fpg_grid.pas +++ b/src/gui/fpg_grid.pas @@ -116,6 +116,7 @@ type property ColumnTextColor; // property Cols[index: Integer]: TStrings read GetCols write SetCols; // property Rows[index: Integer]: TStrings read GetRows write SetRows; + procedure Clear; end; @@ -528,5 +529,16 @@ begin Update; end; +procedure TfpgCustomStringGrid.Clear; +var + i: integer; +begin + for i := FColumns.Count-1 downto 0 do + TfpgStringColumn(FColumns[i]).Free; + FColumns.Clear; + FRowCount := 0; + Update; +end; + end. |