Wer kann beim Zugriff auf Zellen der Titelleiste eines DBGrids helfen?



  • Hallo,
    ich möchte in meinem TDBGrid in der Titelleiste in einer der Zellen ein Bild einkopieren.
    Zeichnen ließe sich mit OnDrawColumnCell.

    Bisher ist es mir nicht gelungen Zugriff auf die ensprechenden Zellen im Titelbereich zu bekommen.

    if (State.Contains(gdFixed))
    

    jedenfalls zeigt keine Reaktion.
    Ein direktes Zeichnen im Event OnTitleClick geht auch nicht, da beim Neuzeichnen des Grids bei anderen Aktionen auch die Bilder verschwinden.

    Kann jemand sagen, wie hier der Zugriff erfolgen könnte. Eine Ableitung aus einem Vorgänger von TDBGrid wäre auch möglich, wenn sich dort eine entsprechende Hilfe böte.



  • Die Titelleiste gehört nicht zum eigentlichen Zellenbereich (sondern hat intern die Zeilennummer -1).
    Wenn du den Source-Code des DBGrids hast (dbgrids.pas) und ein wenig Delphi beherrscht, dann könntest du diesen entsprechend ändern (DrawTitleCell).
    Selbst mit Ableiten von DBCustomGrid kommst du nicht weiter...

    Ansonsten würde ich dir empfehlen, einfach eine andere Komponente (TImage, TPaintBox, ...) über die Titelleiste zu legen.
    Falls der Anwender die Spaltenbreite ändern kann, dann müßtest du noch entsprechend die Columns.Width abfragen (evtl. per Timer) und die Position des Bildes bestimmen.



  • Hallo @Th69,

    präzise Antwort. 👍

    Habe soetwas befürchtet.
    Werde meine alten Turbo Pascal Kenntnisse auskramen und versuchen, was zu bewegen.
    Vom Drüberpinseln halte ich nicht soviel. Zumindest hier nicht 😉

    Vielen Dank


Anmelden zum Antworten