dbgrid: update active row if active record changed (bug #7934)

git-svn-id: trunk@10502 -
This commit is contained in:
jesus 2007-01-24 08:42:25 +00:00
parent 17ee7d3f7d
commit be37b3ea24
2 changed files with 18 additions and 2 deletions

View File

@ -2336,6 +2336,9 @@ var
CurActiveRecord: Integer;
begin
if FDataLink.Active then begin
{$ifdef dbgGridPaint}
DebugLn('DrawAllRows: Link.ActiveRecord=%d, Row=%d',[FDataLink.ActiveRecord, Row]);
{$endif}
CurActiveRecord:=FDataLink.ActiveRecord;
FDrawingEmptyDataset:=FDatalink.DataSet.IsEmpty;
end else
@ -2377,7 +2380,7 @@ begin
{$endif}
inherited DrawRow(ARow);
{$ifdef dbgGridPaint}
DebugLn('End Row')
DebugLn(' End Row')
{$endif}
end;
@ -2501,6 +2504,7 @@ begin
// find out the column count, if result=0 then
// there are no visible columns defined or dataset is inactive
// or there are no visible fields, ie the grid is blank
{$IfDef dbgDBGrid}DebugLn('TCustomDbgrid.UpdateGridCounts INIT');{$endif}
BeginVisualChange;
try
Result := GetColumnCount;
@ -2528,11 +2532,15 @@ begin
RowCount := RecCount;
FixedRows := FRCount;
FixedCols := FCCount;
UpdateGridColumnSizes;
SetColRow(Col, FixedRows + FDatalink.ActiveRecord);
end;
finally
EndVisualChange;
end;
{$IfDef dbgDBGrid}DebugLn('TCustomDbgrid.UpdateGridCounts END');{$endif}
end;
procedure TCustomDBGrid.UpdateVertScrollbar(const aVisible: boolean;

View File

@ -658,7 +658,6 @@ type
procedure SetTopRow(const AValue: Integer);
procedure TryScrollTo(aCol,aRow: integer);
procedure UpdateScrollBarPos(Which: TScrollStyle);
procedure UpdateSelectionRange;
procedure WriteColumns(Writer: TWriter);
procedure WriteColWidths(Writer: TWriter);
procedure WriteRowHeights(Writer: TWriter);
@ -795,6 +794,7 @@ type
function SelectCell(ACol, ARow: Integer): Boolean; virtual;
procedure SetCanvasFont(aFont: TFont);
procedure SetColor(Value: TColor); override;
procedure SetColRow(const ACol,ARow: Integer);
procedure SetEditText(ACol, ARow: Longint; const Value: string); dynamic;
procedure SetBorderStyle(NewStyle: TBorderStyle); override;
procedure SetFixedcolor(const AValue: TColor); virtual;
@ -805,6 +805,7 @@ type
function TryMoveSelection(Relative: Boolean; var DCol, DRow: Integer): Boolean;
procedure UnLockEditor;
procedure UpdateHorzScrollBar(const aVisible: boolean; const aRange,aPage: Integer); virtual;
procedure UpdateSelectionRange;
procedure UpdateVertScrollbar(const aVisible: boolean; const aRange,aPage: Integer); virtual;
procedure UpdateBorderStyle;
procedure VisualChange; virtual;
@ -2677,6 +2678,13 @@ begin
inherited SetColor(Value);
end;
procedure TCustomGrid.SetColRow(const ACol, ARow: Integer);
begin
FCol := ACol;
FRow := ARow;
UpdateSelectionRange;
end;
procedure TCustomGrid.DrawBorder;
var
R: TRect;