БОЛЬШОЙ FAQ ПО DELPHI



Как ползунок 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, если они:

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



<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ



Материалы находятся на сайте https://exelab.ru/pro/



Видеокурс ВЗЛОМ