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

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

{ 
  Question: 
  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) 

  Answer: 
  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. 
   
   
  Frage: 
  Wie дndere ich die Farbe der aktuellen Zelle eines Stringgrids oder TDBGrids ? 
   
  Antwort: 
  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. 
}

 type

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 © 2022 - All Rights Reserved - www.delphirus.com