1. Methode zum Anzeigen der EXAKTEN POSITIONIERUNG des Scroll-Buttons


IM FORMULAR


oForm = oEvent.Source

oScrollField = oForm.getByName("Bildlaufleiste")

oScrollField.ScrollValueMax = loMax

oScrollField.ScrollValue = loPos


IM DIALOG


oDialog.getControl("Bildlaufleiste").Model.ScrollValueMax = loMax

oDialog.getControl("Bildlaufleiste").Model.ScrollValue = loPos



2. Methode zum AUSLÖSEN DURCH DIE BILDLAUFLEISTE "Beim Justieren"


(a) IM FORMULAR


oScrollAction = oEvent.Source

oForm = oScrollAction.Model.Parent

loPos = oScrollAction.getValue()


(b) IM DIALOG


(aa) Object-Methode


DIM oScrollAction as OBJECT

oScrollAction = oDialog.getControl("Bildlaufleiste")

loPos = oScrollAction.value (Berichtigung: oScrollAction.value muss es natürlich heißen, zuvor hatte ich stehen: scrollAction.valu)


Bei der Object-Methode ist ein Durchlauf beim Verschiebebutton. Allerdings hat sich bei mir gezeigt, dass die zugrundeliegende MySQL-Datenbank (mit etlichen Abfragen) verzögert reagiert. Man darf also den Verschiebebutton nicht zu schnell bewegen. Mit Mouseklick auf die beiden Pfeiltasten der Bildlaufleiste klappt der Durchlauf wunderbar.


(bb) model-Methode


loPos = oDialog.getControl("Bildlaufleiste").Model.ScrollValue


Es wird nur der Zieldatensatz nach Beendigung der Verschiebebutton-Bewegung mit Loslassen der Mouse-Tasten angezeit. Bei den Pfeiltasten funktioniert der Durchlauf wunderbar.

Für meine Verhältnisse wende ich die model-Methode an, da die Verzögerung der MySQL-Datenbank irritierend ist. Mit dem Verschiebebutton ungefähr in den Bereich des relevanten Datensatzes klicken und dann die Feinjustierung per Pfeiltasten.


(Die Pfeiltasten scheinen nur bei Windows, unter Linux - ich benutze privat LinuxMint - nicht vorhanden zu sein!)


Ereignisse, die man mit dem Makro verknüpfen kann, muss man ausprobieren. Grundsätzlich funktionieren: "Maustaste losgelassen" und "Mausbewegung bei Tastendruck", beide mit dem selben Makro verknüpft

Auch „Beim justieren“ funktioniert, zumindest bei der model-Methode





Am 02.11.18 um 06:46 schrieb Gerhard Dittrich:


Im Handbuch LibreOffice 6.1, Kapitel Base,  wird das Beispiel "Scrollbar" behandelt, siehe Beispieldatenbank «Beispiel_Datensatz_scrollbar.odb.
(Vielen Dank den Autoren dafür!)

Die Beispieldatenbank "Beispiel_Datensatz_scrollbar.odb" stellt die Scrollbar für Formulare dar.
Wie lauten die Befehle für Dialogboxen?

1. Methode zum Anzeigen der EXAKTEN POSITIONIERUNG des Scroll-Buttons

IM FORMULAR

    oForm = oEvent.Source
    oScrollField = oForm.getByName("Bildlaufleiste")
    oScrollField.ScrollValueMax = loMax
    oScrollField.ScrollValue = loPos

IM DIALOG

    oDialog.getControl("Bildlaufleiste").Model.ScrollValueMax = loMax
    oDialog.getControl("Bildlaufleiste").Model.ScrollValue = loPos

(soweit so gut)

2. Methode zum  AUSLÖSEN DURCH DIE BILDLAUFLEISTE "Beim Justieren"

(a) IM FORMULAR

    oScrollAction = oEvent.Source
    oForm = oScrollAction.Model.Parent
    loPos = oScrollAction.getValue()

(b) IM DIALOG ???

Verwendet man  loPos = oDialog.getControl("Bildlaufleiste").Model.ScrollValue, dann wird der Wert loPos der Position des Scroll-Button nach Loslassen der Mouse-Taste angezeigt.

Gibt es eine "oScrollAction" analoge Methode für Dialogboxen, so dass die einzelnen Datensätze angezeigt werden beim Durchlaufen der Scrollbar und nicht (nur) der Datensatz beim Beenden des Durchlaufens?






--
Liste abmelden mit E-Mail an: [email protected]
Probleme? 
https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy

Antwort per Email an