Лаба 9 №48. Управление отображением данных в TDBGrid.
То, как происходит прорисовка данных в сетке TDBGrid – стандартным образом или по определенному сценарию – определяется свойством DefaultDrawing. Если в этом свойстве установить False, то алгоритм прорисовки должен содержаться в обработчиках события ondrawcollumncell и ondrawdatacell (обработчик события ondrawdatacell введён для совместимости с ранними версиями Delphi).
Пример: Вывод значения поля жирным шрифтом в верхний левый угол ячеек соответствующего столбца.
Procedure Tform1.DBGrid1DrawcolumnCell(Sender:TObject; Const Rect:Trect; Datacol:Integer; Column:TColumn; State:TGridDrawState);
Begin
If Zakaz[‘kol’]>10 then
With DBGrid1.Canvas do
Begin
Font.style:=[fsbold];
TextOut(rect.Left,Rect.Top,Column.Field.Text);
End;
End;
Параметры события OnDrawColumnCell:
1) Rect – координаты области прорисовки;
2) DataCol – порядковый номер текущего столбца, начиная с нулевого;
3) Column – текущий столбец;
4) State – состояние ячейки:
а) gdSelected – ячейка выделена;
б) gdFocused – ячейка имеет фокус ввода;
в) gdFixed –ячейка относится к фиксированной строке или столбцу;
Для стандартного вывода ячеек используется метод DefaultDrawColumnCell.
Если в свойстве DefaultDrawing компонента TDBGrid установить True (задаётся по умолчанию), то обработчики будут вызваны после завершения стандартной процедуры прорисовки, т.е. программный вывод в данном случае накладывается на стандартный. Это может стать причиной неправильного отображения данных. Чтобы исключить нежелательное влияние стандартного вывода необходимо сначала закрасить прямоугольник прорисовки: FillRect(Rect). Но при двойной прорисовке может замедлиться скорость листания данных в сетке, поэтому лучше в свойстве DefaultDrawing установить False и в обработчике события OndrawColumnCell написать:
If Zakaz[‘kol’]>10 then
With DBGrid1.Canvas do
Begin
Font.style:=[fsbold];
TextOut(rect.Left,Rect.Top,Column.Field.Text);
End
Else
DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
Событие OnDrawColumnCell возникает при прорисовке каждой ячейки, при этом текущей записью базового НД становиться запись с прорисовываемой ячейкой.
№49. Дополнительные возможности компонента TDBGrid.
Свойство Options компонента TDBGrid имеет следующие параметры:
- dgEditing – разрешает редактирование.
- dgAlwaysShowEditor – при выделении столбца автоматически переводит его в режим редактирования.
- dgTitles – показывает заголовки столбцов.
- dgIndicator – показывает указатель текущей строки в самом левом фиксированном столбце.
- dgColumResize – разрешает пользователю с помощью мыши менять ширину столбцов.
- dgColLines – показывает в сетке вертикальные разделяющие линии.
- dgRowLines – показывает в сетке горизонтальные разделяющие линии.
- dgTabs – разрешает переход от столбца к столбцу с помощью клавиши Tab.
- dgRowSelect – разрешает выделение цветом всей текущей строки.
- dgAlwaysShowSelection – выделение текущей строки цветом сохраняется, даже если компонент теряет фокус ввода.
- dgConfirmDelete – требует подтверждения удаления строки.
- dgCancelOnExit – если пользователь вставляет пустую строку и покидает её, то она не сохраняется в таблице БД;
- dgMultiSelect – разрешает множественный выбор строк.
Если dgEditing = false, то независимо от свойства readOnly любого столбца, все данные в сетке будут защищены. Если dgAlwayShoweditor = false, то редактировать выделенный столбец можно после нажатия клавиш F2, или Enter или после двойного щелчка на ячейке мышью (левой кнопкой).
№50 Основные свойства и методы компонента TQuery
Свойство SQL представяет собой набор строк где пишется текст SQL запроса. Компонент Ейгукн находящийся на панели ИЕУ позволяет определить условие отбора записей из нескольких таблиц БД.
Дата добавления: 2017-02-20; просмотров: 1487;