:: MVP ::
|
|
:: RSS ::
|
|
|
Как изменить цвета строк в DBGrid?
// В примере меняется цвет каждой нечетной строки
procedure TMainFrm.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
// Красим нечетные строки
if TDBGrid( Sender ).DataSource.DataSet.RecNo mod 2 = 1 then
TDBGrid( Sender ).Canvas.Brush.Color := clInfoBk;
// Восстанавливаем выделение текущей позиции курсора
if gdSelected in State then
begin
TDBGrid( Sender ).Canvas.Brush.Color := clHighLight;
TDBGrid( Sender ).Canvas.Font.Color := clHighLightText;
end;
// Просим GRID перерисоваться самому
TDBGrid( Sender ).DefaultDrawColumnCell( Rect, DataCol, Column, State );
end;
|
Как изменить цвет заголовка (Title) колонки в DBGrid?
// Способ первый
// Для DrawingStyle = gdsClassic
procedure TForm1.Button1Click(Sender: TObject);
begin
DBGrid1.Columns.Items[0].Title.Color := clInfoBk;
end;
// Способ первый
// Для DrawingStyle <> gdsClassic
type
TDBGrid = class(Vcl.DBGrids.TDBGrid)
protected
procedure DrawCellBackground(const ARect: TRect; AColor: TColor;
AState: TGridDrawState; ACol, ARow: Integer); override;
end;
implementation
procedure TForm1.Button1Click(Sender: TObject);
begin
DBGrid1.Columns.Items[0].Title.Color := clInfoBk;
end;
procedure TDBGrid.DrawCellBackground(const ARect: TRect; AColor: TColor;
AState: TGridDrawState; ACol, ARow: Integer);
begin
inherited;
if (ACol >= 0) and (ARow = -1) and (Columns[ACol].Title.Color <> clBtnFace) then
begin
Canvas.Brush.Color := Columns[ACol].Title.Color;
Canvas.FillRect(ARect);
end;
end;
|
Как выделить все строки в DBGrid?
// dgMultiSelect должен быть True
procedure TForm1.Button1Click(Sender: TObject);
begin
ADOQuery1.First;
while not ADOQuery1.Eof do
begin
DBGrid1.SelectedRows.CurrentRowSelected := True;
ADOQuery1.Next;
end;
end;
|
При использовании материала - ссылка на сайт обязательна
|
|