![]() |
AW: VCL.TDBGrid - CustomDraw für selectierte Row?
Du willst doch nur wissen, ob die aktuell zu zeichnende Zeile die ausgewählte Zeile ist, oder? Dazu sollte eine Überprüfung auf
Delphi-Quellcode:
im DataSet ausreichen. Dass das protected Properties sind macht dir sicher keine Probleme.
ActiveRecord = CurrentRecord
|
AW: VCL.TDBGrid - CustomDraw für selectierte Row?
Jupp, AfterScroll funktioniert. :firejump:
Hab aber RecNo benutzt ... einfacher, schneller und universeller. Nja, aber dennoch würde ich es mal als Bug ansehen, dass man die selektierte Row nicht auslesen kann. Und zusätzlich als FeatureRequest, dass sie doch einfach diesen Status ins TGridDrawState aufnehmen könnten. @Uwe: Ich probiers mal. :thumb: AfterScoll hatte ich schon ... da nur noch die neue Variable rein ... das mit dem protected wird ein paar Zeilen mehr Code, aber sieht bestimmt dennoch besser aus. Für MemIniFile hatte ich auch schon einen Bugfix, da dort jemand bei den Default-Werten Mist gebaut hat. |
AW: VCL.TDBGrid - CustomDraw für selectierte Row?
Nee, CurrentRecord ist immer -1
und ActiveRecord entspricht einem RecNo-1. |
AW: VCL.TDBGrid - CustomDraw für selectierte Row?
Zitat:
|
AW: VCL.TDBGrid - CustomDraw für selectierte Row?
Liste der Anhänge anzeigen (Anzahl: 2)
So, hier erstmal als TestProjekt.
Komisch nur, im eigentlichen Projekt gehen Dinge, die hier nicht gehn, und zusätzlich sind mir neue Probleme aufgefallen.
|
AW: VCL.TDBGrid - CustomDraw für selectierte Row?
Du könntest Mal probieren, dir die Recno im TDataSource.OnDataChange zu merken.
|
AW: VCL.TDBGrid - CustomDraw für selectierte Row?
Hallo
bei der jetzigen Implementation nach dem hinzufügen der Daten einen "scroll" auslösen z.B.
Code:
Eine andere Möglichkeit wurde hier beschrieben
ClientDataSet1.First;
![]()
Code:
Uwe
type
THackDBGrid = class (TDBGrid); ... procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); begin if (THackDBGrid(dbGrid1).DataLink.ActiveRecord + 1 = THackDBGrid(dbGrid1).Row) or (gdFocused in State) or (gdSelected in State) then dbGrid1.canvas.Brush.Color:= clMoneyGreen; dbGrid1.DefaultDrawColumnCell (Rect, DataCol, Column, State); end; |
AW: VCL.TDBGrid - CustomDraw für selectierte Row?
Stimmt ... drüben wird nach dem Hinzufügen noch mehrmals gescrollt. :thumb:
Es gibt mehrere Quellen für die Daten und anschließend wird nochmal über alles gegangen und Zusatzinfos hinzugefügt. Die einfache Lösung für das fehlende Malen nun entdeckt: AfterScroll und AfterPost (dort auch das AfterScroll-Event angehängt) @ol1uw: :firejump: Hab's nur noch etwas abgewandelt.
Delphi-Quellcode:
if DataSet1.RecNo = {TDBGridAccess}TStringGrid(DBGrid1).Row then // DataSet1.RecNo-1 wenn ohne dgTitles
Hab auch den Anhang in #15 noch schnell mit dem aktuellen Code aktualisiert. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:35 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz