Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - OnDBGrid1CellClick wird nicht bei Scrollen ausgeführt??


rob87 - Mo 17.11.08 17:32
Titel: OnDBGrid1CellClick wird nicht bei Scrollen ausgeführt??
Hallo zusammen,

ich hab mal ne kurze Frage: Ich möchte, wenn ich in einem DBGrid einen Datensatz anklicke, eine Aktion starten. Ich hab das soweit in der Eigenschaft "OnDBGrid1CellClick" hinterlegt. Allerdings wird mir dieses Ereignis nicht ausgeführt, wenn ich mit der Maus durch die Datensätze scrolle.

Was muss ich den wählen, dass ich beide Bereiche abgedeckt hab? OnEnter hab ich auch schon erfolglos probiert.


Delete - Mo 17.11.08 17:49

Reagiere auf z.B. AfterScroll des zugrundeliegenden TDataset.


rob87 - Mo 17.11.08 17:59

user profile iconDeddyH hat folgendes geschrieben Zum zitierten Posting springen:
Reagiere auf z.B. AfterScroll des zugrundeliegenden TDataset.

Wird schwierig, da mehrere Komponenten darauf zugreifen


Delete - Mo 17.11.08 18:06

Eine DBGrid stellt ja nur Daten aus einem Dataset optisch dar. Eine Änderung des aktuellen Datensatzes solltest Du also "an der Quelle" abgreifen.


rob87 - Mo 17.11.08 18:34

user profile iconDeddyH hat folgendes geschrieben Zum zitierten Posting springen:
Eine DBGrid stellt ja nur Daten aus einem Dataset optisch dar. Eine Änderung des aktuellen Datensatzes solltest Du also "an der Quelle" abgreifen.


Ich will ja nix ändern. Ich will ja lediglich, dass wenn des Mausrad weiterläuft, eine Aktion uasgeführt wird (Aktualisieren einer Anzeige). Wenn ich in meinem DBGrid einen CellClick mach, macht er ja, was er soll. Aber ned bei einem Wechsel des Datensatzes mit dem Mausrad...


Delete - Mo 17.11.08 18:38

Sry, ich habe mich da missverständlich ausgedrückt. Ich meinte mit "Änderung des aktuellen Datensatzes" kein Bearbeiten, sondern das Scrollen innerhalb der Datenmenge, so dass ein anderer Datensatz zum aktuellen wird.


rob87 - Di 18.11.08 12:02

user profile iconDeddyH hat folgendes geschrieben Zum zitierten Posting springen:
Sry, ich habe mich da missverständlich ausgedrückt. Ich meinte mit "Änderung des aktuellen Datensatzes" kein Bearbeiten, sondern das Scrollen innerhalb der Datenmenge, so dass ein anderer Datensatz zum aktuellen wird.


Hmmm.. Aber trotzdem leuchtet mir des noch ned ganz ein. Es is doch eigentlich nur ein "OnCellClick-Ereignis", auch wenn ich mit dem Mausrad den Datensatz umpositionier.


alzaimar - Di 18.11.08 12:11

Spendiere dem Grid doch einfach eine eigene TDatasource und werte dort das OnDataChange-Ereignis aus. Wenn das übergebene Feld 'Nil' ist, dann wurde der Datensatz gewechselt.

Alternativ kannst Du auch datensensitive Steuerelemente verwenden.


rob87 - Di 18.11.08 13:00

user profile iconalzaimar hat folgendes geschrieben Zum zitierten Posting springen:
Spendiere dem Grid doch einfach eine eigene TDatasource und werte dort das OnDataChange-Ereignis aus. Wenn das übergebene Feld 'Nil' ist, dann wurde der Datensatz gewechselt.


Merci. Hat funktioniert. Danke... :) :)