Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TDBGrid OnMouseWheel (https://www.delphipraxis.net/139597-tdbgrid-onmousewheel.html)

Andidreas 1. Sep 2009 10:17


TDBGrid OnMouseWheel
 
aloah,

wir haben auf einer form ein dbgrid in dem diverse daten angezeigt werden...
je zeile die markiert ist sollen in einem anderen teil der form mehr details zu dem markierten datensatz aus dem dbgrid angezeigt werden...
um das ganze benutzerfreundlich zu machen haben wird im "oncellclick" "onkeypress" und "onmousewheel" eine aktualsierung auf die detail anzeige eingefügt...

im "oncellclick" und "onkeypress" funktionierte die aktualisierung auf anhieb...

im "onmousewheel" nicht... hier hat er immer 'verzögert' die daten aktualsiert d.h. beim datensatz 2 im dbgrid hat er in der detail anzeige die daten vom datensatz 1 angezeigt... usw...

über folgenden code haben wir das problem gelöst:

Delphi-Quellcode:
  if wheeldelta = -120 then
  begin
    dbgrid1.datasource.dataset.Next;
    Label1.Caption := 'Size: ' + (dbm.query.FieldByName('Feld1').asstring);
    dbgrid1.DataSource.DataSet.Prior;
  end;

  if wheeldelta = 120 then
  begin
    dbgrid1.datasource.dataset.prior;
    Label1.Caption := 'Size: ' + (dbm.query.FieldByName('Feld1').asstring);
    dbgrid1.DataSource.DataSet.next;
  end;
gibt es hierfür noch eine elegantere lösung?

Laaeris 17. Nov 2020 09:19

AW: TDBGrid OnMouseWheel
 
...welch alter Code und dennoch mein Problem ebenso. Ich habe auch (noch) nichts besseres gefunden. Wie hast Du das Problem gelöst, wenn man das Mausrad SCHNELL dreht und damit viele Datensätze übersprungen werden - dann funktioniert das bei mir nämlich nicht einwandfrei?

Liebe Grüße,

David

lxo 17. Nov 2020 09:34

AW: TDBGrid OnMouseWheel
 
Würde da nicht das <TDataSet>.AfterScroll Event ausreichen?

Damit könnte man sich alle anderen Events des Grids meiner Meinung nach sparen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:57 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz