Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - OnMouseWheel im DBGridsetzt setzt zu spät ein


Barret - Fr 29.10.10 11:02
Titel: OnMouseWheel im DBGridsetzt setzt zu spät ein
Hey!

Ich hab ein Problem mit dem OnMouseWheel-Event auf einem DB-Grid.
Im OnCellClick lasse ich die jeweiligen Infos des Datensatzes in andere Kompomenten (TEdit, TComboBox, ...) anzeigen um sie zu verändern.
Jetz möchte ich das das Mausrad auf dem Grid auch benutzt werden kann.
Also die gleiche Funktion wie im OnCellClick auf OnMouseWheel. Funktioniert auch aber immer erst ab dem zwiten einrasten der Maus.

Direkte Anwendung:
Klick = alles io
1. drehen des Rades = keine reaktion
2. drehen des Rades = Funktion wird ausgelöst aber mit der letzten Position

Dadurch bin ich immer einen Datensatz hinter her wenn ich das Rad benutzte. Hat jemand eine Idee?


Barret - Fr 29.10.10 12:32

Okey jetz gehts!

ich überschreibe die OnWheelUp und Down Funktion im on Show der Form mit dieser: (Die zweite schreib ich jetzt nicht dazu)


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TForm.MyWheelUp_Home(Sender: TObject; Shift: TShiftState;
MousePos: TPoint; var Handled: Boolean);
begin
  Handled := True;
  DBGrid.DataSource.DataSet.Prior;
  FillEditFields_Home_Eigenschaft; //<- eigene Funktion für beschriebene Editfelder & Co.
end;


Damit erkennt er dann auch den 1. Dreher des Rades.