Mega Code Archive

 
Categories / Delphi / Graphic
 

Displaying the selected row of a DBGrid in a different color

Title: Displaying the selected row of a DBGrid in a different color Question: How can I show selected row in a dbgrid in a different color without using dgRowSelect (because I need to edit the data)? Answer: If you want to color the selected row in a DBGrid but you don't want to use the dgRowSelect option because you want to be able to edit the data you can use the following technique on the DBGrid.OnDrawColumnCell event: type TCustomDBGridCracker = class(TCustomDBGrid); procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); begin with Cracker(Sender) do if DataLink.ActiveRecord = Row - 1 then Canvas.Brush.Color := clRed else Canvas.Brush.Color := clWhite; DefaultDrawColumnCell(Rect, DataCol, Column, State); end;