Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вопрос по компоненту 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.


Наверх

Титульная страница Поиск, карта сайта Написать письмо