4D v15

Formularereignis On Scroll

Home

 
4D v15
Formularereignis On Scroll

Formularereignis On Scroll  


 

In bisherigen 4D Versionen ließ sich das Scrollen von Variablen und Feldern vom Typ Bild über das Formularereignis On Picture Scroll (Wert 59) verwalten.

In 4D v15 wurde das Scrollen auf Listbox Objekte erweitert (siehe unten) und das Formularereignis On Picture Scroll umbenannt in On Scroll. Es ist jetzt in der Eigenschaftenliste auch für Listboxen verfügbar. Die Arbeitsweise für Bilder ist gleichgeblieben.

Hinweis zur Kompatibilität:
Es gibt zwei geringe Unterschiede zwischen der Implementation von On Picture Scroll und On Scroll:

  • On Picture Scroll wurde in der Objektmethode und der Formularmethode erzeugt, konnte aber auf Ebene der Formulareigenschaften nicht aktiviert bzw. deaktiviert werden. Zur besseren Konsistenz wird das Ereignis On Scroll ab 4D v15 nur in der Objektmethode generiert. Falls Ihre konvertierte Anwendung Scrollen für Bilder über die Formularmethode verwaltet hat, müssen Sie den Code in die passende Objektmethode verschieben.
  • Im Stapel der Ereignisse konnte On Picture Scroll vor anderen Benutzerereignissen wie On Click aufgerufen werden. On Scroll wird immer nach den anderen Benutzerereignissen generiert.

In 4D v15 ist das Ereignis On Scroll für zwei scrollbare Objekte verfügbar:

  • Felder und Variablen vom Typ Bild mit dem Format "Abgeschnitten (nicht zentriert)". Das war bereits in bisherigen 4D Versionen unter dem Namen On Picture Scroll verfügbar.
  • Listboxen (neu in 4D v15).

Dieses Ereignis ist für Objekte in der Eigenschaftenliste standardmäßig nicht markiert.

Das Formularereignis On Scroll wird erzeugt, sobald ein Benutzer im Formularobjekt, das im Bereich enthalten ist, scrollt. Das Ereignis wird nur generiert, wenn das Scrollen durch eine Benutzeraktion erfolgt, d.h. über Scroll-Balken bzw. Cursor, Mausrädchen oder Tastatur. Es wird nicht generiert, wenn über den Befehl OBJECT SET SCROLL POSITION im Objekt gescrollt wird. 

Das Ereignis wird nach allen anderen Benutzerereignissen im Zusammenhang mit dem Scrollen ausgelöst (On Clicked, On After Keystroke...).

Das Ereignis wird nur in der Objektmethode generiert (nicht in der Formularmethode).

Die ausgewählte Zelle einer Listbox rot umrahmen und den Rahmen mitbewegen, wenn der Benutzer in der Listbox in vertikaler Richtung scrollt. In der Objektmethode zur Listbox schreiben Sie folgenden Code:

 Case of
 
    :(Form event=On Clicked)
       LISTBOX GET CELL POSITION(*;"LB1";$col;$raw)
       LISTBOX GET CELL COORDINATES(*;"LB1";$col;$raw;$x1;$y1;$x2;$y2)
       OBJECT SET VISIBLE(*;"RedRect";True//rotes Rechteck initialisieren
       OBJECT SET COORDINATES(*;"RedRect";$x1;$y1;$x2;$y2)
 
    :(Form event=On Scroll)
       LISTBOX GET CELL POSITION(*;"LB1";$col;$raw)
       LISTBOX GET CELL COORDINATES(*;"LB1";$col;$raw;$x1;$y1;$x2;$y2)
       OBJECT GET COORDINATES(*;"LB1";$xlb1;$ylb1;$xlb2;$ylb2)
       $toAdd:=LISTBOX Get headers height(*;"LB1") //Höhe des Kopfteils, damit es nicht überlappt
       If($ylb1+$toAdd<$y1) & ($ylb2>$y2//sind wir innerhalb der Listbox,
  //verwalten wir der Einfachheit halber nur Kopfteile
  //wir sollten auch horizontales Scrollen
  //sowie Rollbalken verwalten
          OBJECT SET VISIBLE(*;"RedRect";True)
          OBJECT SET COORDINATES(*;"RedRect";$x1;$y1;$x2;$y2)
       Else
          OBJECT SET VISIBLE(*;"RedRect";False)
       End if
 
 End case

Als Ergebnis folgt das rote Rechteck dem Scrollen der Listbox:

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Programmiersprache

 
GESCHICHTE 

 
SCHLÜSSELWÖRTER 

.

 
ARTIKELVERWENDUNG

4D v15 - Upgrade (R-Release Edition) ( 4D v15)

Gesplittet : Neues Formularereignis On Scroll ( 4D v15)