[Gelöst] TDBGrid anderes scrollen?

Rund um die LCL und andere Komponenten
MmVisual
Beiträge: 1470
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 3.0 FPC 3.2)
CPU-Target: 32/64Bit

Re: TDBGrid anderes scrollen?

Beitrag von MmVisual »

Ich habe 2 INC Dateien erstellt, die kann man nun einfach in alle Formulare einbinden die ein TDBGrid haben:

Code: Alles auswählen

unit ...
interface
uses ..., DBGrids, ...
...
{$I TDBGridType.inc}
...
implementation
uses ...
{$I TDBGridCode.inc}
....
Zuletzt geändert von MmVisual am Do 9. Nov 2023, 20:09, insgesamt 2-mal geändert.
EleLa - Elektronik Lagerverwaltung - www.elela.de

MmVisual
Beiträge: 1470
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 3.0 FPC 3.2)
CPU-Target: 32/64Bit

Re: [Gelöst] TDBGrid anderes scrollen?

Beitrag von MmVisual »

Nochmals ein Update, das "schöner" scrollt.
TDBGridScrollExtension.zip
(1021 Bytes) 62-mal heruntergeladen
EleLa - Elektronik Lagerverwaltung - www.elela.de

Soner
Beiträge: 624
Registriert: Do 27. Sep 2012, 00:07
OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
CPU-Target: x86_64-win64
Wohnort: Hamburg

Re: [Gelöst] TDBGrid anderes scrollen?

Beitrag von Soner »

Nach dem Scrollen gleicher Zeile markieren ist gute, das kann man bei "feature request" einbinden.
wps code konnte ich nicht testen, weil mein git immer bei sein Patch Fehler gemeldet hat.

Vielleicht ganze Seite Scrollen ist falsch, weil die Benutzer sind von Excel, LibreOffice und TStringGrid gewöhnt, dass dort nur 3 Zeilen gescrollt wird. Ich denke 3 Zeilen sind zu wenig, es sollte Zeilenweise wie bisher, halbe Seite oder ganze Seite gescrollt werden.
Vielleicht sollte man eine neue Eigenschaft einführen, dass das default Verhalten festlegt und es wird zusätzlich auf Tastendruck reagiert, etwa so:

Code: Alles auswählen

// neue Eigenschaft: xyMouseWheelOption = (mwCursor, mwHalfPage, mwPage);
if (MouseWheelOption=mwPage) or ( (ssCtrl In Shift) and (ssShift In Shift)) then Seiteblättern
else if (MouseWheelOption=mwHalfPage) or (ssShift In Shift) then HalbeSeiteblättern
else ZeileScrollen;
Vielleicht kann man das auch ohne Datenzeile(DB-Cursor) zu bewegen bewerkstelligen, TDBGrid macht es ja beim Zeichnen auch.

MmVisual
Beiträge: 1470
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 3.0 FPC 3.2)
CPU-Target: 32/64Bit

Re: [Gelöst] TDBGrid anderes scrollen?

Beitrag von MmVisual »

Ich arbeite gerade Lazarus V3/RC2 und habe den wps DIFF von hand einkopiert und dann noch meine Sachen so abgeändert. Meine Geänderte Routine steht im Bugreport, die kann man dan ebenfalls einfach ersetzen.

Erst mal schauen was die Lazarus-Gemeinde so dazu sagt, eventuell gibt es noch bessere Ideen.
Vieleicht gibt es noch son ein Parameter wie:
Seitenweise Scrollen zu xxx %, dann könnte man das selbst festlegen.
EleLa - Elektronik Lagerverwaltung - www.elela.de

Antworten