Einzelnen Beitrag anzeigen

JoelH
(Gast)

n/a Beiträge
 
#1

Warum wird die erste Spalte nicht eingefärbt ?

  Alt 15. Jul 2003, 14:13
ich hab diesen Code geschrieben
Delphi-Quellcode:
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;
wichtig sind hier folgende Zeilen
Delphi-Quellcode:
      //if (row = ARow) then Brush.Color := schriftfarbe XOR 65655;
      if (State = [gdSelected]) then Brush.Color := schriftfarbe XOR 65655;
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

Warum nur ?
  Mit Zitat antworten Zitat