Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Tdbadvgrid einfärben (https://www.delphipraxis.net/178587-tdbadvgrid-einfaerben.html)

Drumbo 16. Jan 2014 09:32

Tdbadvgrid einfärben
 
Morgen,

ich hab ein DbadvGrid in dem ich die Zeilen je nach Status einfärben mag.
Das klappt auch. Allerdings möchte ich nicht nur simpel die komplette Zeile einfärben sondern möchte einzelne
Zellen mit der Farbe clWindow versehen, sodass man direkt sieht, dass es sich hierbei um ein Eingabefeld handelt.
Dazu habe ich zwei Fragen:
1. Wie schaffe ich es nur eine Zelle und nicht die ganze Spalte zu adressieren bzw. einzufärben?
Über beispielweise :
Delphi-Quellcode:
dbadvgrid.Cells[1,2].colors:=clwindow;
geht das schonmal nicht.

2. Ist es überhaupt möglich die Farbe noch zuändern, wenn ich vorher die ganze Zeile mit folgendem Befehl eingefärbt habe.
Delphi-Quellcode:
ABrush.Color := clRed;
Habe mal versucht mit
Delphi-Quellcode:
dbadvgrid1.columns[1].color:=clwindow;
das zu testen das hat allerdings nicht funktioniert.
Dachte mir, dass ich erst alles einfärbe und direkt im anschluss die einzelnen Zellen adressiere und einfärbe.

Der Aufruf zum einfärben erfolgt bei mir in der GetCellColor Prozedur.
Hoffe ihr habt alle nötigen Angaben.

Gruß

Volker Z. 16. Jan 2014 15:36

AW: Tdbadvgrid einfärben
 
Hallo,

Zitat:

Wie schaffe ich es nur eine Zelle und nicht die ganze Spalte zu adressieren bzw. einzufärben?
Das geht mit
Delphi-Quellcode:
DBAdvGrid1.Colors [ACol, ARow] := clWindow;
Zitat:

Ist es überhaupt möglich die Farbe noch zuändern, wenn ich vorher die ganze Zeile mit folgendem Befehl eingefärbt habe [...]
Ich weiß zwar nicht was Du genau versucht hast, aber vielleicht hilft Dir folgendes weiter:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  DBAdvGrid1.RowColor [1] := clBlue; // erste Zeile blau
  DBAdvGrid1.Columns [2].Color := clRed; // zweite Spalte rot
  DBAdvGrid1.Colors [1, 3] := clGreen; // Zelle erste Spalte, dritte Zeile grün
end;
So kannst Du die Farbe einer Zelle im OnGetCellColor ändern
Delphi-Quellcode:
 
procedure TForm1.DBAdvGrid1GetCellColor(Sender: TObject; ARow, ACol: Integer; AState: TGridDrawState; ABrush: TBrush; AFont: TFont);
begin
  if (ACol = 2) and (ARow = 1) then
    ABrush.Color := clWindow
end;
Gruß

Drumbo 17. Jan 2014 14:04

AW: Tdbadvgrid einfärben
 
Hey,

vielen dank für die Hilfe.Klappt jetzt.
Hatte nen denk Fehler drinne.

Grüße


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:14 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz