Акжан в сети - На уровень вверх(VCL) В Delphi 3 и выше ползунок TDBGrid иногда может находится не только в трех фиксированных позициях. Что для этого нужно?

Здесь отрывки из исходников VCL -

unit DBGrids;

procedure TCustomDBGrid.UpdateScrollBar;
var
  SIOld, SINew: TScrollInfo;
begin

[skipped]

      if IsSequenced then

      begin
        SINew.nMin := 1;
        SINew.nPage := Self.VisibleRowCount;
        SINew.nMax := RecordCount + SINew.nPage -1;
        if State in [dsInactive, dsBrowse, dsEdit] then
          SINew.nPos := RecNo; // else keep old pos
      end
      else
      begin
        SINew.nMin := 0;
        SINew.nPage := 0;
        SINew.nMax := 4;
        if BOF then SINew.nPos := 0
        else if EOF then SINew.nPos := 4
        else SINew.nPos := 2;
      end;

[skipped]

unit dbtables;

function TBDEDataSet.IsSequenced: Boolean;
begin
  Result := (FRecNoStatus = rnParadox) and (not Filtered);
end;

Ilya Andreev

(2:5030/55.28)

То есть, к примеру, все будет работать "красиво" на таблицах BDE, если они:

TClientDataSet в режиме single-tier (briefcase) также работает "красиво".