Советы по Delphi

         

В Delphi 3 и выше ползунок TDBGrid


Nomadic отвечает:

Здесь отрывки из исходников 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;

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

  • таблицы Paradox;
  • на них не установлен фильтр.
TClientDataSet в режиме single-tier (briefcase) также работает "красиво". [001340]



Содержание раздела