was ist neu ¦  programmier tips ¦  indy artikel ¦  intraweb artikel ¦  informationen ¦  links ¦  interviews
 sonstiges ¦  tutorials ¦  Add&Win Gewinnspiel

Tips (1541)

Dateien (137)
Datenbanken (90)
Drucken (35)
Grafik (114)
IDE (21)
Indy (5)
Internet / LAN (130)
IntraWeb (0)
Mathematik (76)
Multimedia (45)
Oberfläche (107)
Objekte/
ActiveX (51)

OpenTools API (3)
Sonstiges (126)
Strings (83)
System (266)
VCL (242)

Tips sortiert nach
Komponente


Tip suchen

Tip hinzufügen

Add&Win Gewinnspiel

Werbung

25 Visitors Online


 
...die Farbe der fokussierten Zelle eines Grids ändern?
Autor: P. Below
Homepage: http://www.teamb.com
[ Tip ausdrucken ]  

Tip Bewertung (7):  
     




{
  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;

 

Bewerten Sie diesen Tipp:

dürftig
ausgezeichnet


Copyright © by SwissDelphiCenter.ch
All trademarks are the sole property of their respective owners