![]() |
Einfärben des Grids
Hallo zusammen,
ich versuche mit folgender Procedure mein Grid abwechselnd einzufärben:
Delphi-Quellcode:
bei meinen anderen Projekten funkioniert das auch, aber bei dem aktuellen Projekt ist alles clsilver und nicht abwechselnd silber und weiss.
procedure TFRM_Main.DBG_RechnerDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); var test1: real; RowNo: Integer; farbe: Integer; begin with (Sender as TDBGrid) do begin if (gdSelected in State) then begin Canvas.Brush.Color := clskyblue; end else begin rowno := DM_Rechner.ADO_DS_Rechner.RecNo; test1 := (Rowno / 2) - trunc(Rowno / 2); If test1 = 0 then begin farbe := Clwhite; end else Begin farbe := clsilver; end; canvas.brush.Color := farbe; canvas.Font.Color := ClBlack; end; canvas.FillRect(rect); canvas.TextOut(Rect.Left + 2, rect.Top + 1, column.Field.AsString); end end; Kann mir jemand helfen woran das liegt und wie ich das ändere? Gruß Flash |
AW: Einfärben des Grids
Benutze doch bitte Delphi-Tags, dann ist der Code auch besser zu lesen. Und Deine Ermittlung gerader/ungerader Zeilen erscheint mir doch sehr kompliziert, wieso nicht einfach Odd() oder mod 2 benutzen. Durch den Vergleich einer Fließkommazahl mit 0 kann es sein, dass das so nicht eintritt, da etwas wie 0,00000001 herauskommt.
|
AW: Einfärben des Grids
Wie benutze ich die Tags?
Wie gesagt bei meinen anderen Projekten funktioniert das ohne Probleme, habe den Code selbst im Internet gefunden. |
AW: Einfärben des Grids
Entweder über die "Helm"-Schaltfläche im Beitragseditor oder händisch mit [ delphi]Code[ /delphi] (ohne Leerzeichen). Und wie gesagt, das geht auch anders:
Delphi-Quellcode:
if Odd(DM_Rechner.ADO_DS_Rechner.RecNo) then
farbe := clSilver else farbe := clWhite; //oder auch if (DM_Rechner.ADO_DS_Rechner.RecNo and 1) = 0 then farbe := clWhite else farbe := clSilver; |
AW: Einfärben des Grids
OK hab es oben mal geändert, danke für den Tip.
Wegen des codes meinst du so:
Delphi-Quellcode:
procedure TFRM_Main.DBG_RechnerDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); var farbe: Integer; begin with (Sender as TDBGrid) do begin if (gdSelected in State) then begin Canvas.Brush.Color := clskyblue; end else begin if Odd(DM_Rechner.ADO_DS_Rechner.RecNo) then farbe := clSilver else farbe := clWhite; {end; ist zu viel} canvas.brush.Color := farbe; canvas.Font.Color := ClBlack; end; canvas.FillRect(rect); canvas.TextOut(Rect.Left + 2, rect.Top + 1, column.Field.AsString); end end; |
AW: Einfärben des Grids
Das sollte so richtig sein, zumindest ist mir nichts Negatives aufgefallen.
|
AW: Einfärben des Grids
Es war ein end zuviel, aber das hat leider nichts geändert, es wird noch immer alles in silber angezeigt(außer dem Cursor der ist blau).
|
AW: Einfärben des Grids
Hast Du DefaultDrawing auf false gesetzt?
|
AW: Einfärben des Grids
Ne das steht auf True so wie bei meinen anderen Projekten auch.
|
AW: Einfärben des Grids
Komisch. Wie ist es so?
Delphi-Quellcode:
[edit] Oder mal ohne with:
procedure TFRM_Main.DBG_RechnerDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); var farbe: Integer; begin with (Sender as TDBGrid) do begin if (gdSelected in State) then begin farbe := clskyblue; end else begin if Odd(DM_Rechner.ADO_DS_Rechner.RecNo) then farbe := clSilver else farbe := clWhite; end; end; canvas.brush.Color := farbe; DefaultDrawColumnCell(Rect, DataCol, Column, State) ; end; end;
Delphi-Quellcode:
[/edit]
procedure TFRM_Main.DBG_RechnerDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); var grid: TDBGrid; farbe: TColor; begin grid := Sender as TDBGrid; if (gdSelected in State) then begin farbe := clskyblue; end else begin if Odd(DM_Rechner.ADO_DS_Rechner.RecNo) then farbe := clSilver else farbe := clWhite; end; end; grid.canvas.brush.Color := farbe; grid.DefaultDrawColumnCell(Rect, DataCol, Column, State) ; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:49 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