hallo ihr da draußen,
ich habe mal wieder ein Problem. Wenn ich ein DBGrid verwenden will, geht die Scrollbar nicht richtig mit den Daten mit. Es gibt nur 3 Prositionen (ganz Oben, in der Mitte, und ganz Unten). Will ich nun die Scrollbar bewegen, so springt die Marktierte Zeile ganz nach oben oder unten. Was soll ich dagegen machen?
Ein weiteres Problem mit DBGrid ist, dass wenn ich MultiSelect auf True setze zwar mehrere Zeilen markiert werden können, wenn ich aber nach Oben mit der Scrollbar gehe, der Erste DS auch mit markiert wird, ebenso wie der letzte.
mfG Manfred
Hallo Manfred,
hier ein Erklärungsversuch:
Das Problem liegt an der verwendeten Datenmenge. Ist dieses zum Beispiel eine Tabelle mit TableType=ttDBase dann funktioniert der vertikale Scrollbar von DBGrid nicht wie erwartet. Bei anderen Tabellen wie zum Beispiel ttParadox oder Abfragen vom MSSQL-Server (über ADO) passt sich der Scrollbar an die Datenmenge an. Vereinfacht gesagt bekommt der ScrollBar der DBGrid-Komponente von der BDE in bestimmten Fällen nicht die notwendigen/korrekten Informationen (Gesamt-Anzahl Datensätze, momentane Position in der Gesamt-Datenmenge…). Dies scheint ein Kompromiß der BDE zugunsten der Geschwindigkeit zu sein.
Ich habe schon Komponenten probiert, die versuchten das auszugleichen. Die Performance war meines Erachtens jedoch nicht befriedigend (abhängig von Datenmenge).
Ansätze zur Lösung:
* andere Datenquelle benutzen (z.B. Paradox)
* möglicherweise bringt ein BDE-Ersatz Abhilfe (keine Ahnung), ADO+AdoExpress funktioniert auch
* andere Komponete als TDBGrid einsetzen
* man lebt damit
Das Multiselect-Problem ist ein Folgefehler. Der Cursor wird auf dem ersten bzw. letzen Datensatz verschoben und somit ist dieser Datensatz auch ausgewählt.
Gruss
U.Teichert
Danke für deine Hilfe, leider kann ich keinen anderen Tabellentyp wie Paradox wählen. Ich weiß jetzt wenigstens dass es nicht an mir liegt. Also nochmals danke für deine Bemühungen.
Ciao Manfred