Лучше всего создать новый класс
в декларации класса TDBGrid в разделы public и published.
Лучше всего создать новый класс - наследника от TDBGrid:
TNewDBGrid = class(TDBGrid)
public
{прямоугольник для указанной ячейки}
function CellRect(ARow, AСol : Integer) : TRect;
{текущий столбец}
property Col;
{текущая строка}
property Row;
{счетчик столбцов}
property ColCount;
{ширина столбцов}
property ColWidths;
{счетчик строк}
property RowCount;
{высота строк}
property RowHeights;
published
{количество “зафиксированных” столбцов}
property FixedCols;
{обработчики событий от мыши}
property OnClick;
property OnMouseMove;
property OnMouseUp;
property OnMouseDown;
end;
. . .
function TNewDBGrid.CellRect(ARow, Acol : Integer) : TRect;
begin
Result:= inherited CellRect(ARow, ACol);
end;
В примере приведены не все возможные методы и свойства для публикации. Некоторые могут быть полезны. Информацию об этих свойствах и методах можно подчерпнуть из исходных текстов библиотеки и в пункте меню среды Delphi “View|Browser”. Но некоторые свойства, вроде FixedRows, работают не так как ожидается, поскольку их значения переопределяется внутри объекта.
II. Вертикальный ScrollBar.
Обычно возникает вопрос, почему позиция движка в вертикальном ScrollBar’е не соответствует позиции текущей записи в таблице. Ответ частично был дан в предыдущем пункте: не всегда можно говорить о номере текущей записи. Но при желании можно заставить ScrollBar отображать позицию текущей записи в таблице, разумеется, только в случае локальных данных. Например так:
procedure TForm1.DataSource1DataChange(Sender: TObject;
Field: TField);
begin
if Table1.State = dsBrowse then begin
SetScrollRange(DBGrid1.Handle, SB_VERT, 0,
Table1.RecordCount-1, False);
SetScrollPos(DBGrid1.Handle, SB_VERT, GetRecNo-1, False);
end;
end;
Процедура GetRecNo (приведена в предыдущем пункте) возвращает номер записи. Недостаток данного способа состоит в том, что при переходе на другую запись движок будет перерисовываться два раза, один раз в процедуре Paint, а второй раз в OnDataChange.
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий