Einzelnen Beitrag anzeigen

aurikel_Max

Registriert seit: 9. Okt 2009
86 Beiträge
 
#1

erledigt - Stringgrid - Reihe selektieren ohne RowSelect

  Alt 20. Aug 2010, 12:43
Mahlzeit DP,

ich arbeite zurzeit noch an meinem Stringgrid. Bei diesem kann man, wenn man auf die oberste Reihe (ARow = 0) klickt, die Tabelle sortieren. Um dies zu ermöglichen, frage ich bei einem OnClick ab, ob die selektierte Reihe = 0 ist und danach erfolgt jetzt nach Spalte die entsprechende Sortierfunktion.

Allerdings möchte ich auch die ganze Reihe, wenn eine Zelle selektiert ist, farbig hervorheben. Dazu hatte ich ursprünglich RowSelect an. Wenn allerdings RowSelect an ist, komme ich nicht mehr an die aktuell selektierte Spalte.

Nun möchte ichc RowSelect selbst malen, dazu habe ich mir überlegt, dass ich im OnCellDraw-Event abfrage, ob die aktuell selektierte Reihe = der Reihe ist, die gerade gemalt wird. Ist dem so, so soll die Zelle farbig gemalt werden.

Im Quelltext sieht dies so aus:

Delphi-Quellcode:
  if ARow = sgrdOverview.Row then
  begin
    sgrdOverview.Canvas.Brush.Color := clHighlight;
    sgrdOverview.Canvas.Font.Color := clHighlightText
  end
  else
  begin
    sgrdOverview.Canvas.Brush.Color := clWindow;
    sgrdOverview.Canvas.Font.Color := clWindowText;
  end;
Wenn ich nun mein StringGrid anzeigen lassen, so wird die oberste Reihe (die einzige Reihe) auch erfolgreich angemalt. Wenn ich nun allerdings Daten reinlade und eine andere Zelle markiere, kommt es zu Fehlern. Wo liegt der Fehler im Quelltext? (DefaultDrawing ist aus)

Liebe Grüße,
Max
Max

Geändert von aurikel_Max (20. Aug 2010 um 14:34 Uhr)
  Mit Zitat antworten Zitat