Einzelnen Beitrag anzeigen

Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.429 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: StringGrid roter Rahmen

  Alt 2. Mai 2016, 08:57
hey,

ist nur ein Ausschnitt!
Dann ist an dieser Stelle der Quelltext aber falsch eingerückt.
Ich würde auch viel mehr Unterfunktionen verwenden.
Damit bleibt der Quelltext z.B. für spätere Fehlersuche oder Änderungen lesbar.
Delphi-Quellcode:
function TForm1.GetColorForValue(AValue: Integer): TColor;
begin
  case AValue of
    1..3, 11: Result := $004080FF;
    4..10: Result := clYellow;
  else Result := clBlack;
  end;
end;

function TForm1.GetColorForCell(AState: TGridDrawState; AValue: Integer): TColor;
begin
  if gdSelected in AState then
    Result := clMenu
  else
    Result := GetColorForValue(AValue, 0);
end;

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
  with StringGrid1 do
  begin
    {Hintergrund und Text, TextRect füllt auch den Hintergrund}
    Canvas.Brush.Color := GetColorForCell(State, IntToStrDef(Cells[0, ARow], 0));
    Canvas.TextRect(Rect, Rect.Left, Rect.Top, Cells[ACol, ARow]);

    {Markierung}
    if gdFocused in State then
    begin
      Canvas.Brush.Color := clTeal;
      Canvas.DrawFocusRect(Rect);
    end;
  end;
end;
  Mit Zitat antworten Zitat