Membuat warna record DBGRid pada ‘event mouse over’

      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:
  1. Ketik “ type THackDBGrid = class(TDBGrid); ” tanpa tanda petik tepat di bawah “Uses” seperti gambar berikut :
  2. Ketikkan kode berikut pada DBGRid dalam event “OnDrawColumnCell”
  3. 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; 
  4. Langkah takhir adalah ketik kode berikut pada DBGRid dalam event “OnMouseMove” :
  5. 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;

Share this

Related Posts

Previous
Next Post »