![]() |
Delphi-Version: 10.4 Sydney
DrawGrid Zellen abwechselnd mit Farbe füllen
Hallo,
Ich bin am verzweifeln, bekomme es nicht hin. Ich möchte ein DrawGrid diagonal mit einer Farbe füllen. Bei mir werden immer die Spalten unterschiedlich gefüllt! Kann mir einer einen Tipp geben? :) |
AW: DrawGrid Zellen abwechselnd mit Farbe füllen
Nicht nur die Zeilen (ACol), sondern auch die Spalten (ARow) prüfen. :zwinker:
Niemand weiß wie dein Code aussieht. Wie soll da jemand wissen, was du falsch machst? Tipp/Vermutung: Wenn DefaultDrawing False ist, dann mußt du auch dann die "andere" Farbe zurücksetzen, selbst wenn es nicht die gewünschte Zelle ist. Vorher wird da ja der Standardhintergrund nicht gemalt (das
Delphi-Quellcode:
vom DefaultDraw fehlt).
DrawGrid1.Canvas.Brush.Color := DrawGrid1.Color;
|
AW: DrawGrid Zellen abwechselnd mit Farbe füllen
Delphi-Quellcode:
Hier mein Code.
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState); begin if (Sender as TStringGrid).Cells[ACol, ARow] <> '' then begin (Sender as TStringGrid).Canvas.Brush.Color := clRed; (Sender as TStringGrid).Canvas.FillRect(Rect); end; end; |
AW: DrawGrid Zellen abwechselnd mit Farbe füllen
Hi TLAng,
Du kannst Deinen Quellcode etwas übersichtlicher formatieren, wenn Du das Delphi-Symbol (= gelber Helm mit dem roten Kamm) vom Menü direkt über dem Editorfenster benutzt. Alternaiv dazu kannst Du den Quellcode zwischen [DELPHI] und [/DELPHI] setzten. Das geht übrigens auch nachträglich, wenn Du Deinen letzten Beitrag editierst. :-D Gruß, Andreas |
AW: DrawGrid Zellen abwechselnd mit Farbe füllen
Zitat:
Was willst Du denn wirklich erreichen? |
AW: DrawGrid Zellen abwechselnd mit Farbe füllen
Ich möchte abwechselnd blau und rote Zellen haben.
In einer Reihe sind 8 Zellen und ich habe 8 Reihen. In der nächsten Reihe versetzt. |
AW: DrawGrid Zellen abwechselnd mit Farbe füllen
Das ist machbar.
Man kann es mit If's zusammenbauen. Mittels Odd(ACol) bekommst du zum Beispiel heraus ob du in einer "ungeraden" Spalte bis. Dann könnte es z. B. so aussehen:
Delphi-Quellcode:
var
CellColor: TColor; begin if Odd(ACol) then begin if Odd(ARow) then CellColor := clRed else CellColor := clBlue; end else begin if Odd(ARow) then CellColor := clBlue else CellColor := clRed; end; // und hier müsste dein Einfärben in... end; |
AW: DrawGrid Zellen abwechselnd mit Farbe füllen
Wieso dein Code eventuell nicht das macht, was er soll?
Klar, er macht ja auch was Anderes, als du gesagt hast. -> Färben, wenn etwas in der Zelle, wo hier niemand weiß, was deren Inhalt ist. @TurboMagic, das geht auch mathematisch :)
Delphi-Quellcode:
if Odd(ARow) xor {not} Odd(ACol) then // NOT oder das Color:=... umdrehen, falls andersrum
DrawGrid1.Canvas.Brush.Color := clBlue else DrawGrid1.Canvas.Brush.Color := clRed; DrawGrid1.Canvas.FillRect(Rect); |
AW: DrawGrid Zellen abwechselnd mit Farbe füllen
Ja, ich dachte mir schon, dass es vermutlich noch einen einfacheren Weg gibt. Ich wollte aber
zumindest einen möglichen Weg aufzeigen. Jetzt kann er sich's raussuchen. |
AW: DrawGrid Zellen abwechselnd mit Farbe füllen
Hi himitsu,
herzlichen Dank für deine Hilfe. Das habe ich gesucht.:thumb: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:14 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz