Einzelnen Beitrag anzeigen

koernel

Registriert seit: 1. Apr 2010
4 Beiträge
 
#1

Stringgrid zeilen färben

  Alt 22. Jul 2013, 15:20
Hallo liebe Wissende,

in einem Stringgrid färbe ich jede 2te Zeile um es übersichtlicher zu machen.
Deshalb muss ich allerdings auch markierte Zeilen andersfarbig gestalten weil sonst die bereits gefärbten Zeilen sich in markiertem Zustand nicht von den anderen abheben.

Problem 1 : Hierbei entsteht bereits das Problem dass die erste Spalte nicht mitgefärbt wird.

Problem 2: Durch ein doppelklick auf eine Zeile öffnet sich ein Detailfenster. Da man durch scrollen usw. irgendwann nicht mehr weiss zu welcher Zeile die Details gehören möchte ich diese Zeile bis zum nächsten Doppelklick auch farblich hervorheben.
Ich hab schon sovieles gelesen und einiges versucht aber nichts führt zu dem gewünschten ergebnis...

Hier der Code im OnDrawCell Ereignis:
Delphi-Quellcode:
procedure TfrmMain.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
if not Odd(ARow) and not (gdFixed in State) then
    with StringGrid1 do
    begin
      Canvas.Brush.Color := TColor($D9D9C0);
      Canvas.FillRect(Rect);
      Canvas.TextOut(Rect.Left+2, Rect.Top+2, Cells[ACol, ARow]);
    end;

    if (state = [gdSelected]) then
    with Stringgrid1 do
    begin
      Canvas.Brush.Color := TColor($FFCC99);
      Canvas.FillRect(Rect);
      Canvas.TextOut(Rect.Left + 2, Rect.Top + 2, Cells[aCol, aRow]);

    end;
end;
  Mit Zitat antworten Zitat