TDrawGrid, Mouseover erkennen

Rund um die LCL und andere Komponenten
Antworten
Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2822
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

TDrawGrid, Mouseover erkennen

Beitrag von m.fuchs »

Hallo,

ich möchte gerne in einem DrawGrid die Zelle über der sich der Mauszeiger befindet in einer anderen Farbe zeichnen. So wie ich die Dokumentation verstanden habe, muss ich im OnDrawCell nur prüfen ob gdHot in aState enthalten ist.
Aus irgendeinem Grunde klappt das aber nicht,

Code: Alles auswählen

if gdHot in aState then ...
wird niemals True.

Muss ich im DrawGrid noch irgendeine Option aktivieren? Aber welche?

mfg
Micha
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

Scotty
Beiträge: 768
Registriert: Mo 4. Mai 2009, 13:24
OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
CPU-Target: x86_64-linux-qt/gtk2
Kontaktdaten:

Re: TDrawGrid, Mouseover erkennen

Beitrag von Scotty »

Ohne diese Flags im Detail zu kennen, ich würde der Implementation nicht grenzenlos vertrauen: Es wäre möglich, im OnMouseMove() mit MouseToCell() eine eigene Variable zu belegen und im OnDrawCell() dann entsprechend zu reagieren. Das ist relativ einfach umzusetzen.

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2822
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: TDrawGrid, Mouseover erkennen

Beitrag von m.fuchs »

Scotty hat geschrieben:Es wäre möglich, im OnMouseMove() mit MouseToCell() eine eigene Variable zu belegen und im OnDrawCell() dann entsprechend zu reagieren.
Ok, so hab ich das jetzt auch umgesetzt. Danke für den Tipp, ging fast problemlos.

Trotzdem würde mich natürlich interessieren, was ich bei meinem anderen Versuch falsch gemacht habe. Falls also jemanden noch was dazu einfällt...
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

Antworten