Hallo zusammen,
bin nicht ganz sicher ob ich hier richtig bin, aber eine Intraweb-Forum gibt's leider bei embarcadero nicht (mehr) und da ich die Komponenten in Delphi nutze hoffe ich hier Hilfe zu finden.
Ich habe folgendes mit den entsprechenden Intraweb-Komponenten eingerichtet:
- Form mit zwei Regions, je eine oben und unten im Fenster. Oben mit align=alTop, unten align=alBottom
- in der Mitte zwischen den Regions ein IWDBGRID mit der Option "align=alClient", so dass dieses Grid den ganzen Platz einnimmt, der von Top und Bottom freigelassen wird.
Das Grid zeigt in der Voreinstellung 20 Zeilen (RowLimit=20), je nach Größe des Browser-Fensters passen die nicht alle ins Fenster. Die Komponente zeigt dann auch einen Laufbalken an der rechten Seite, der blättert aber nur max. 1 Zeile weiter. Wenn das Fenster also statt 20 Zeilen nur 10 Zeilen des IWDBGrid anzeigen kann, kann man nicht zur letzten Zeile scrollen sondern nur bis zur 11. oder manchmal 12. Zeile. Das ist auch unabhängig davon, ob das Fenster von Anfang an zu klein ist oder ob man es nach Anzeigen der ganzen Liste verlkeinert. Der Scrollbalken ist immer "zu kurz".
Ich möchte das aber für den Anwender so komfortabel wie möglich, egal wie groß er das Fenster zieht soll sich das IWDBGrid ja mit der Option align=alClient ebefalls vergrößern/verkleinern und wenn das Fenster für das Grid zu klein wird sollte man zumindest scrollen können (wie auch sonst bei "normalem" direkt in HTLM erstellten Web-Anwendungen, da macht das halt der Browser wenn der Inhalt zu lang wird).
Ich habe schon alle Einstellungen ausprobiert, die dem Namen nach irgendwie etwas mit dem Thema zu tun haben könnten, finde aber keine Lösung. Mache ich etwas falsch oder kann die Komponente das einfach nicht? Ein normales DBGrid in einer Delphi-Anwendung macht das ja korrekt - ich dachte IWDBGrid könne das auch...
Wenn ich für das IWDBGrid align=alTop einstelle und ein feste Höhe angebe, wird immerhin ein Gesamt-Scrollbalken angezeigt, der innerhalb des Browserfensters die ganze Liste verschiebt, so dass man bis zur letzten Zeile scrollen kann. Ich kann auch per Code vorab berechnen, wie hoch die Liste sein muss, damit alle gewünschten Zeilen angezeigt werden (der Anwender kann wählen zwischen 10, 20, 50, 250,alle), aber mit einem IWDBGrid das seine Größe per align=alClient anpasst und dessen eigenem Scrollbalken in richtiger Länge wäre es schöner.
Hat jemand einen Tipp für mich, wie ich das gewünschte Verhalten erreichen kann? Habe ich nur eine Option übersehen oder muss ich evtl. im OnRender-Event selbst eingreifen - dann wüsste ich aber auch nicht wo ich da ansetzen muss.
Gruß,
Siegbert
bin nicht ganz sicher ob ich hier richtig bin, aber eine Intraweb-Forum gibt's leider bei embarcadero nicht (mehr) und da ich die Komponenten in Delphi nutze hoffe ich hier Hilfe zu finden.
Ich habe folgendes mit den entsprechenden Intraweb-Komponenten eingerichtet:
- Form mit zwei Regions, je eine oben und unten im Fenster. Oben mit align=alTop, unten align=alBottom
- in der Mitte zwischen den Regions ein IWDBGRID mit der Option "align=alClient", so dass dieses Grid den ganzen Platz einnimmt, der von Top und Bottom freigelassen wird.
Das Grid zeigt in der Voreinstellung 20 Zeilen (RowLimit=20), je nach Größe des Browser-Fensters passen die nicht alle ins Fenster. Die Komponente zeigt dann auch einen Laufbalken an der rechten Seite, der blättert aber nur max. 1 Zeile weiter. Wenn das Fenster also statt 20 Zeilen nur 10 Zeilen des IWDBGrid anzeigen kann, kann man nicht zur letzten Zeile scrollen sondern nur bis zur 11. oder manchmal 12. Zeile. Das ist auch unabhängig davon, ob das Fenster von Anfang an zu klein ist oder ob man es nach Anzeigen der ganzen Liste verlkeinert. Der Scrollbalken ist immer "zu kurz".
Ich möchte das aber für den Anwender so komfortabel wie möglich, egal wie groß er das Fenster zieht soll sich das IWDBGrid ja mit der Option align=alClient ebefalls vergrößern/verkleinern und wenn das Fenster für das Grid zu klein wird sollte man zumindest scrollen können (wie auch sonst bei "normalem" direkt in HTLM erstellten Web-Anwendungen, da macht das halt der Browser wenn der Inhalt zu lang wird).
Ich habe schon alle Einstellungen ausprobiert, die dem Namen nach irgendwie etwas mit dem Thema zu tun haben könnten, finde aber keine Lösung. Mache ich etwas falsch oder kann die Komponente das einfach nicht? Ein normales DBGrid in einer Delphi-Anwendung macht das ja korrekt - ich dachte IWDBGrid könne das auch...
Wenn ich für das IWDBGrid align=alTop einstelle und ein feste Höhe angebe, wird immerhin ein Gesamt-Scrollbalken angezeigt, der innerhalb des Browserfensters die ganze Liste verschiebt, so dass man bis zur letzten Zeile scrollen kann. Ich kann auch per Code vorab berechnen, wie hoch die Liste sein muss, damit alle gewünschten Zeilen angezeigt werden (der Anwender kann wählen zwischen 10, 20, 50, 250,alle), aber mit einem IWDBGrid das seine Größe per align=alClient anpasst und dessen eigenem Scrollbalken in richtiger Länge wäre es schöner.
Hat jemand einen Tipp für mich, wie ich das gewünschte Verhalten erreichen kann? Habe ich nur eine Option übersehen oder muss ich evtl. im OnRender-Event selbst eingreifen - dann wüsste ich aber auch nicht wo ich da ansetzen muss.
Gruß,
Siegbert
Comment