Delphi World - Изменить цвет шрифта выделенной ячейки сетки
Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Изменить цвет шрифта выделенной ячейки сетки

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

{ 
  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;
Проект Delphi World © Выпуск 2002 - 2017
Автор проекта: Эксклюзивные курсы программирования