Einzelnen Beitrag anzeigen

Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#7

Re: StringGrid Zellenfärben mit 3D-Effekt

  Alt 10. Aug 2008, 07:14
Hallo,

Ich habe den Code noch etwas angepasst.
So wird nun jede 4. Zeile eine "Fixed Row".

Evtl sind weitere Optimierungen nötig.

Siehe Anhang für Resultat.

Delphi-Quellcode:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
var
  TempRect: TRect;
begin
  if (ARow mod 4 = 0) then
    with TStringGrid(Sender) do
    begin
      TempRect := Rect;
      DrawFrameControl(Canvas.Handle, TempRect, DFC_BUTTON, DFCS_BUTTONPUSH);
      Canvas.Brush.Color := FixedColor;
      Canvas.FillRect(TempRect);
      DrawEdge(Canvas.Handle, TempRect, BDR_RAISEDINNER, BF_RECT);
      Canvas.Brush.Color := clBlack;

      with TempRect do
      begin
        if ACol = ColCount - 1 then
          Right := Right
        else
          Right := Right + 1;
        Bottom := Bottom + 1;
        Top := Top - 1;
        Left := Left - 1;
        Canvas.FrameRect(TempRect);
      end;
    end;
end;
Miniaturansicht angehängter Grafiken
4thcolfixed_125.jpg  
Thomas
  Mit Zitat antworten Zitat