Einzelnen Beitrag anzeigen

Rabenrecht

Registriert seit: 9. Dez 2016
79 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

DBGrids - Alternative zu RecNo?

  Alt 9. Dez 2016, 15:00
Hallo

Gibt es eine Alternative zu RecNo um die aktuelle Zeile zb. in einem DrawColumnCell-Ereignis zu bestimmen?

So wie ich RecNo verstehe, greift man damit immer auf den Datensatz zu, was einen gewaltigen Performance-Einbruch zur Folge haben kann. Wenn RecNo überhaupt gesetzt ist.
Stimmt dies im Wesentlichen, kommt RecNo für mich nicht in Frage.

Meine Aufgabe ist es, projektübergreifend in allen von DGGrid abgeleiteten Grids die Zeilen alternierend einzufärben.

Ich habe bereits verschiedene Workarrounds ausprobiert, die versuchen Anhand von Grid.Top, Rect.Top und Rect.Bottom oder anderen Werten die Bildschirmposition betreffend eine Zeilennummer zu extrapolieren, aber bisher hat nichts wirklich funktioniert.

Beispiel:

Delphi-Quellcode:
delta := Grid.Top - Rect.Top;
RowNo := delta div (Rect.Bottom - Rect.Top);

Wenn ich mir das auf Papier aufmale, müsste das eigentlich funktionieren.
Dass die Zeilen alternierend eingefärbt werden, klappt auch. Welche Zeile als erstes eingefärbt wird (dh. alle geraden oder alle ungeraden), hängt von der Platzierung des Grids ab...

Weiß jemand, wie man das lösen kann?

Freue mich über jede Hilfe
  Mit Zitat antworten Zitat