Berikut ini cara membuat warna pada record di DBGRid pada event mouse over yang berfungsi untuk mempercantik interface. Caranya cukup sederhana dan mudah difahami, Berikut langkah nya:
- Ketik “ type THackDBGrid = class(TDBGrid); ” tanpa tanda petik tepat di bawah “Uses” seperti gambar berikut :
- Ketikkan kode berikut pada DBGRid dalam event “OnDrawColumnCell”
- Langkah takhir adalah ketik kode berikut pada DBGRid dalam event “OnMouseMove” :
procedure TFcode.DBGridDrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer;
Column: TColumn;
State: TGridDrawState);
var grid : TDBGrid;
row : integer;
begin
//Warna pada mouse move
if (THackDBGrid(DBGrid).DataLink.ActiveRecord + 1 = THackDBGrid(DBGrid).Row) or (gdFocused in State) or (gdSelected in State)
then begin
DBGrid.Canvas.Brush.Color := clLime;
DBGrid.Canvas.Font.Style := DBGrid.Canvas.Font.Style + [fsBold] + [fsItalic]; DBGrid.Canvas.Font.Color := clRed;
end;
//Warna berbeda pada DBGrid grid := sender as TDBGrid;
row := grid.DataSource.DataSet.RecNo;
if Odd(row) then grid.Canvas.Brush.Color := $00E1D7D5 else grid.Canvas.Brush.Color := $00C0F1B1;
grid.DefaultDrawColumnCell(Rect, DataCol, Column, State) ;
end;
procedure TFcode.DBGridMouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
var gc: TGridCoord; begin gc:= DBGrid.MouseCoord(x, y);
if (gc.X > 0) AND (gc.Y > 0)
then begin
DBGrid.DataSource.DataSet.MoveBy (gc.Y - THackDBGrid(DBGrid).Row);
end;
end;