![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос по компоненту DBGrid [D7, Paradox]
Kelvin © (2004-01-27 19:15:00)
Как избавиться от вертикальной полосы полосы прокрутки в DBGrid"e? Точнее как сделать, чтобы она появлялась по мере надобности (как в ListBox"e)? И еще один вопрос: как растянуть первое поле на всю область DBGrid?
Kelvin (2004-01-29 18:24:00) [1]
Спасибо. Все работает, но только происходит мерцание при прорисовке. Можно ли как нибуть от этого избавиться?
sergvc (2004-01-28 14:25:00) [2]
Удаление вертикальной полосы прокрутки у TDBGrid
Для удаления вертикальной полосы прокрутки из компонента TDBGrid, вам необходимо перекрыть метод Paint. Внутри метода Paint вам необходимо вызвать процедуру API SetScrollRange, чтобы установить минимальные и максимальные значения полосы прокрутки в ноль (
это запретит вывод полосы прокрутки), после чего вызвать родительский метод Paint. Код, приведенный ниже - новый компонент, названный TNoVertScrollDBGrid, у которого отсутствует вертикальная полоса прокрутки. Вы можете скопировать этот код в файл с именем
NEWGRID.PAS и добавить данный компонент в палитру компонентов.
--------------------------------------------------------------------------------
unit Newgrid;
interface
uses
WinTypes, WinProcs, Classes, DBGrids;
type
TNoVertScrollDBGrid = class(TDBGrid)
protected
procedure Paint; override;
end;
procedure Register;
implementation
procedure TNoVertScrollDBGrid.Paint;
begin
SetScrollRange(Self.Handle, SB_VERT, 0, 0, False);
inherited Paint;
end;
procedure Register;
begin
RegisterComponents("Data Controls", [TNoVertScrollDBGrid]);
end;
end.