![]() |
Warum wird die erste Spalte nicht eingefärbt ?
ich hab diesen Code geschrieben
Delphi-Quellcode:
wichtig sind hier folgende Zeilen
procedure Gridcolor(Sender: TObject;
ACol, ARow: Integer; Rect: TRect; State: TGridDrawState; geldrows : Array of Integer); var check : boolean; i : integer; begin with Sender as TStringgrid do begin WITH Canvas DO BEGIN check := false; for i := 0 to length(geldrows)-1 do begin if ACol = geldrows[i] Then check := true; end; if (ARow > 0) then begin if (check) then Brush.Color := schriftfarbe else Brush.Color := gridhintergrund; end; //if (row = ARow) then Brush.Color := schriftfarbe XOR 65655; if (State = [gdSelected]) then Brush.Color := schriftfarbe XOR 65655; FillRect(Rect); TextOut(Rect.Left, Rect.Top, Cells[ACol, ARow]); END; end; end;
Delphi-Quellcode:
sie sollten beide das selbe machen, die Zeile die selected ist anders einfärben. Tun sie auch, zumindestens fast. Die auskommentierte Zeile tut wie befohlen und markierte alle selektierte Zellen (rowSelect ist an) aber die zweite lässt die erste Spalte unengefärbt :(
//if (row = ARow) then Brush.Color := schriftfarbe XOR 65655;
if (State = [gdSelected]) then Brush.Color := schriftfarbe XOR 65655; Warum nur ? |
Re: Warum wird die erste Spalte nicht eingefärbt ?
Delphi-Quellcode:
Die Spalten werden ab 0 gezählt, so auf die Schnelle, ohne Garantie. :spin:
if (ARow > 0) then
|
Re: Warum wird die erste Spalte nicht eingefärbt ?
@Hansa
es geht um die erste Spalte, nicht die erste Reihe ;) Bei einem DBGrid ist es leider das selbe Phänomen, leider kann ich hier nicht auch die row zurückgreifen bzw. weis leider nicht wie ich an diese ran komme da ja die Parameterübergabe wie folgt ist
Delphi-Quellcode:
Da hab ich ja leider nicht row und ARow :( Wie heissen die bein einem DBGrid ?
procedure DBGridcolor(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState;geldrows : Array of Integer); |
Re: Warum wird die erste Spalte nicht eingefärbt ?
Hai JoelH,
schaue dir doch mal mein Beispiel in der ![]() |
hmm,
joo,
muss heissen
Delphi-Quellcode:
und nicht
if (gdSelected in State) then
Delphi-Quellcode:
sowas aber auch.
if (State = [gdSelected]) then
|
Re: hmm,
Zitat:
![]() Nachtrag zu deiner Frage bzgl. Row: Da ein DBGrid ja mit einem Query oder vergleichbar verbunden ist müsstest Du diese Info über Query1.RecNo herausbekommen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:13 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