25 Sep 2006 

→ english readers please follow this link

Cursor-Bewegung in Listboxen

Standard Cursormovement Ohne in 4D etwas einstellen zu müssen wandert der Cursor in Listboxen in horizontalem Zickzack durch die Zellen bis in die rechte untere Ecke. So soll das sein. Werden datensatz-ähnliche Infos dargestellt werden ist das optimal. Werden verschiedene Arten gleicher Information in einer Matrix dargestellt, ist ein vertikaler Zickzack die effizientere Bewegungsfolge.

Vertical Cursor movementHier werden Fon, Fax, Mobil, eMail, URL und Pager für die Fälle Privat, Geschäftlich und nur mobil eingeb- und änderbar angezeigt. Dann ist es effizienter, sich von oben nach unten durch die Spalten zu bewegen und nach der letzten Zelle zur ersten editierbaren Zelle zurück zu kommen. Das macht 4D nicht automatisch und läßt sich auch nicht einstellen. Mit einer eigenen Methode ist es kein Problem.

Mit dem Event On Losing Focus rufe ich mit diesen Parametern die Methode LBox_Cursor_Movement ("vertical_EditMode"; $lb_ObjName; Focus object;3) auf. Die Parameter sind Optionen als Text, der Objektname der Listbox, das Objekt auf das die Aktion sich bezieht (idR Focus object) und die erste Spalte, die editierbar ist. In einer Matrix ist die erste sichtbare Spalte ein Etikett.

    Die Methode funktioniert so:
  • Variablen Deklarationen
  • Fehler abfangen
  • GET LISTBOX ARRAYS
  • wo ist der Cursor
  • finde die nächste, oder wenn Shift gedrückt ist die vorangegangene, editierbare Zelle
  • wenn Edit-Mode gilt führe EDIT ITEM aus

the methode
Sie haben recht, das ist nicht zu lesen! Darum hier als download. Dies ist die 4D-Methode exportiert und gezipped, damit der Browser nicht versucht, sie darzustellen.

4D Themen: Berichte in Arbeit