Delphi-PRAXiS
Seite 1 von 5  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   DBGrid und Touchscreen (https://www.delphipraxis.net/155207-dbgrid-und-touchscreen.html)

noisy_master 13. Okt 2010 08:32

Datenbank: Paradox • Version: xxx • Zugriff über: BDE

DBGrid und Touchscreen
 
Hallo Gemeinde,

mein Problem ist eigentlich ganz einfach: Ich entwickele ein Kassensystem mit Touchscreen. Die DBGrids(verschiedenste JVDBGrid, cyAdvDBGrid und noch einige mehr, die ich ausprobiert habe) funktionieren mit den dazu passenden Querys...alles gut soweit. Jetzt kommt es:

Die Scrollbars, die standartmässig am DBGrid hängen lassen sich per Touch eigentlich nicht bedienen, da sie viel zu klein sind. Nun zu meiner Frage hat irgendwer eine Idee, wie ich meine Scrollbars so groß bekomme, dass ich diese vernünftig bedienen kann? Es müssen auch nicht unbedingt Scrollbars sein(die könnte man ja ausblenden(über ein Hacked DBGrid, bzw einige DBGrid-Abkömmlinge unterstützen das ja von Haus aus))
Die Variante die Scrollbars Systemweit mit SystemParametersInfo(SPI_SETNONCLIENTMETRICS, sizeOf(currentMetrics), @currentMetrics, SPIF_SENDCHANGE); breiter zu machen halte ich auch für nicht die Beste Lösung(ausserdem funktioniert das bei DBGrids nicht(warum?)). Man könnte auch einfach Buttons nehmen und über diese ein Next und ein Prior auf den Query absetzen, aber die Button sollten dann auch am Anfang bzw. am Ende des Querys jeweils deaktiviert werden, damit der User weiss, dass es hier nicht mehr weitergeht. Hier kommt aber wieder das nächste Problem: Die RecNo entspricht ja leider der Nummer in der gesamten Tabelle, und damit weiss man leider nicht genau wo man gerade ist. Eof/Bof funktioniert auch nicht so gut, da Eof/Bof ja hinter bzw vor dem letzten/ersten Record liegt. Die Varianten mit den abgeleteten DBGrids, die Row und RowCount liefern taugen auch alle nicht, da Row leider immer nur den sichtbaren Zeilen entspricht, TopRow immer = 1 ist(auch hier wieder die Frage warum eigentlich?)...

Wie man sieht ich habe schon etliches ausprobiert, aber immer noch keine Lösung gefunden, die mich zufriedenstellt. Hat hier irgendwer noch noch eine gute Idee? Ich bin für jede dankbar.

Am liebsten wäre es mir wenn man die originalen Scrollbars "ersetzen" könnte

Freue mich auf viele hilfreiche Antworten

Sir Rufo 13. Okt 2010 09:02

AW: DBGrid und Touchscreen
 
Das mit einem DBGrid ist totaler Murks (bei Touch)

Ich würde einen statischen Anzeigebereich nehmen und dort n Zeilen anzeigen lassen

Daneben Buttons mit denen man navigieren kann.

Sehr schön ist natürlich eine Komponente die man iPhone-like scrollen könnte, aber der gemeine Kassierer hat eigentlich lieber was festes unter den Händen

noisy_master 13. Okt 2010 09:12

AW: DBGrid und Touchscreen
 
o.k. Das mit dem festen Anzeigebereich ist eine recht gute Idee, bedarf aber dann eines größeren Re-Designs. Damit ist diese Option(zumindest im Moment) für mich vom Tisch.

Gibt es noch Ideen zu meiner Fragestellung?

divBy0 13. Okt 2010 09:16

AW: DBGrid und Touchscreen
 
Stimmt, das mit dem Grid ist Mist bei Touch.

Wenn es trotzdem ein DBGrid sein soll, könntest du, wenn du D2010 hast, mit Gesten arbeiten und so das DBGrid scrollen.

Andernfalls könntest du z.B. 5 Datensätze übersichtlich in TEdits oder TLabels darstellen und die nächsten 5 Datensätze per Button oder auch per Geste laden und somit scrollen.

noisy_master 13. Okt 2010 09:23

AW: DBGrid und Touchscreen
 
Zitat:

Zitat von divBy0 (Beitrag 1055476)
Stimmt, das mit dem Grid ist Mist bei Touch.

Wenn es trotzdem ein DBGrid sein soll, könntest du, wenn du D2010 hast, mit Gesten arbeiten und so das DBGrid scrollen.

Andernfalls könntest du z.B. 5 Datensätze übersichtlich in TEdits oder TLabels darstellen und die nächsten 5 Datensätze per Button oder auch per Geste laden und somit scrollen.


o.k. auch eine Gute Idee, geht aber auch auf die Idee mit dem festen Anzeigebereich zurück.
Beantwortet aber leider auch nicht die Fragen aus dem 1. Post.
BTW: Wie willst du eigentlich verschieden Datensätze in TLabels/TEdits darstellen? Die beziehen sich doch meines erachtens immer nur auf den aktuellen Datensatz, oder?

Sorry, hast natürlich recht, hatte TDBEdit/TDBLabel gelesen....Mea Culpa!

divBy0 13. Okt 2010 09:35

AW: DBGrid und Touchscreen
 
Das geht nicht auf den festen Anzeigebereich zurück. Ein DBGrid hat die Methode ScrollBy(X, Y). Damit kannst du sogar über einfache Button hoch-/runterscrollen.

noisy_master 13. Okt 2010 09:39

AW: DBGrid und Touchscreen
 
Zitat:

Zitat von divBy0 (Beitrag 1055488)
Das geht nicht auf den festen Anzeigebereich zurück. Ein DBGrid hat die Methode ScrollBy(X, Y). Damit kannst du sogar über einfache Button hoch-/runterscrollen.

o.k. Das hört sich schon viel besser an! Jetzt bleibt aber noch die Frage nach dem Deaktivieren der Hoch/Runter Buttons am Ende bzw Anfang des Querys

Sir Rufo 13. Okt 2010 09:45

AW: DBGrid und Touchscreen
 
Das DataSet hat alle Informationen gespeichert
Position im DataSet, Anzahl der Records, etc.

noisy_master 13. Okt 2010 09:48

AW: DBGrid und Touchscreen
 
Zitat:

Zitat von Sir Rufo (Beitrag 1055496)
Das DataSet hat alle Informationen gespeichert
Position im DataSet, Anzahl der Records, etc.

Wie komme ich denn an die Position? Anzahl der Records ist in RecordCount drin, das ist richtig, aber die RecNo kann man nicht gebrauchen(gibt afaik die Rosition in der gesamten Tabelle an)

Sir Rufo 13. Okt 2010 09:52

AW: DBGrid und Touchscreen
 
RecNo bezieht sich auf das DataSet und gibt die Position innerhalb dessen an


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:49 Uhr.
Seite 1 von 5  1 23     Letzte »    

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