Скрытие полосы прокрутки TDBGrid
в CreateParams
имеет очень короткий временной эффект.Есть процедура UpdateScrollBar
, которая делает полосу прокрутки видимой.Это происходит потому, что видимость полосы прокрутки контролируется в зависимости от отображаемых данных, поэтому эта процедура вызывается при каждом изменении данных.
И поскольку эта процедура вызывается всякий раз, когда необходимо обновить полосу прокрутки и поскольку она виртуальная,пришло время переопределить его.
В следующем примере кода используется вставленный класс, поэтому все компоненты TDBGrid
в форме, принадлежащей этому модулю, будут вести себя одинаково:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TDBGrid = class(DBGrids.TDBGrid)
private
procedure UpdateScrollBar; override;
end;
type
TForm1 = class(TForm)
DBGrid1: TDBGrid;
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TDBGrid.UpdateScrollBar;
begin
// in this procedure the scroll bar is being shown or hidden
// depending on data fetched; and since we never want to see
// it, do just nothing at all here
end;
end.