Изменить цвет шрифта выделенной ячейки сетки

Советы » Шрифты » Изменить цвет шрифта выделенной ячейки сетки

  How do I change the cell font color in a TDBgrid 
  I only want to change the individual cell that is clicked on! 
  (while in the edit mode) 

  Since it is the InplaceEditor control that is displayed when the cell 
  is in edit mode you have to change this controls Color. Getting at it 
  is a bit ugly since the InplaceEditor property of TCustomGrid 
  (which TDBGrid inherits) is protected and the Color property of 
  TCustomMaskedit (from which TInplaceEditor inherits) is also protected. 
  The following works for a TStrinGrid. I used the grids OnGetEditMask event here 
  to have a place where the inplace editor is guaranteed to exist. 
  For a TDBGrid you could probably use OnColEnter. 
  Wie дndere ich die Farbe der aktuellen Zelle eines Stringgrids oder TDBGrids ? 
  Der InplaceEditor wird angezeit, wenn eine Zelle im Editiermodus ist. 
  Es muss also dessen Farbe geдndert werden. Dies kann ьber eine "Cracker"-Klasse 
  erreicht werden. 


TForm1 = class

(TForm) {...} procedure

StringGrid1GetEditMask(Sender: TObject; ACol, ARow: Integer; var

Value: string

); procedure

DBGrid1ColEnter(Sender: TObject); end

; {...} uses

Mask; type

TGridCracker = class

(TCustomGrid); TEditorCracker = class

(TCustomMaskEdit); procedure

TForm1.StringGrid1GetEditMask(Sender: TObject; ACol, ARow: Integer; var

Value: String

); var

editor: TEditorCracker; begin

editor := TEditorCracker(TGridCracker(Sender).InplaceEditor); if

Assigned(editor) then

editor.Color := clYellow; end

; procedure

TForm1.DBGrid1ColEnter(Sender: TObject); var

editor: TEditorCracker; begin

editor := TGridCracker(TGridCracker(Sender).InplaceEditor); if

Assigned(editor) then

editor.Color := clGreen; end


Другое по теме:




Copyright © 2023 - All Rights Reserved - www.delphirus.com