Eigenschaft: TabOrder

Verweis: TabStop Enabled
Uses: StdCtrls
Eingabe: Zahlwert
Ausgabe: Reihenfolge der Fokusierung beim Benutzen der Tab-Taste.
Funktion: Reihenfolge des Durchschaltens bei Betätigung der Tabulator-Taste.

Beispiel 1

Vorbereitung: Erstellen sie eine IDE Anwendung und ziehen Sie zwei TButton, ein TMemo und ein TEdit auf die Form.

Bei der Eigenschaft TabOrder handelt es sich um die Reihenfolge mit dem man durch das Benutzen der Tab-Taste die einzelnen Komponenten den Focus durchschalten kann. Wenn Sie nun die Komponenten, der Reihenfolge Button, Button, Memo-Feld und Edit-Feld wie oben angegeben auf die Form gebracht haben, dann könnte sich beim Tippen der Tab-Taste folgendes Bild ergeben.

Tab-Order Lazarus
Mit Tab-Tasten durchschalten.

Diese Tabulator-Reihenfolge ist nicht zielführend. Deswegen werden wir dieses ändern.

Lazarus -Tabulatorreihenfolge
Tabulatorreihenfolge im PopupMenu.

Wenn sie nun einen Rechtsklick auf die Form im Entwurfsmodus tätigen, dann können Sie im PopupMenu den Eintrag Tabulator – Reihenfolge anklicken. In dem Fenster sehen Sie Ihre Komponenten, die in der Lage sind einen Focus zu erhalten. Ausgenommen sind dann Komponenten wie Label, da diese keinen Focus erhalten können und somit auch nicht über die Eigenschaft TabOrder verfügen.

Lazarus Tabulatorreihenfolge
Der Tabulator-Reihhenfolgen-Editor.

Hier sehen dann die Reihenfolge. Wenn wir nun wie in dem Bild den untersten Eintrag aktivieren (blau) dann können wir mit der grünen Pfeiltaste die Reihenfolge manuell verändern. Es ist aber auch möglich sich die Reihenfolge mit dem blauen Pfeil automatisch anlegen zu lassen. Hierbei wird zunächst von oben nach unten (Y-Richtung) und dann von links nach rechts (X-Richtung) sortiert. Dies führt dazu , dass der Linke Button vor dem Rechten kommt obwohl beide gleich hoch sind (Y-Richtung).

Lazarus automatische Anordnung der Tabulatorreihenfolge.
Reihenfolge der Automatik.

Erst wenn der Button1 über die Hälfte des Button2 in Y-Richtung nach unten rutscht ändert sich die Tabulatorreihenfolge. Rekursiv ist interessant wenn Sie mit einem Panel das Fenster in Abschnitte unterteilt haben und die Abschnitte einzeln durchschalten wollen.

Eingabe über den Objektexplorer

Sollten Sie sich gegen den Tabulator – Editor entscheiden, so können Sie auch einfach den TabOrder-Wert in den Objektexplorer eingeben. Hierbei sollte es sich um eine Zahl zwischen 0 und 32767 handeln. Der Wert bestimmt die Reihenfolge.

0 für Platz 1

Wobei die Zahl Null den ersten Platz einnimmt. Nach der Eingabe des Wertes wird die entsprechende Komponente an den Platz gesetzt und nachfolgendes Komponenten in Ihrer bisherigen Reihenfolge eingereiht.

weitere Regeln

Wenn der angegebene Tab-Order-Wert überschritten wird, so nimmt der angegebene Wert automatisch den Letzten möglichen wert an. In unserem Beispiel heißt das 0 bis 3 erlaubt Bei einer Angabe von einem Wert von 4 wird nach der internen Prüfung ein Wert von 3 eingetragen. Gleiche Werte sind nicht erlaubt. Das überprüfen der Reihenfolge erfolgt nur über den Objektexplorer automatisch. Im Quelltext ist dies nicht der Fall. Hier muss mit dem Befehl FixupTabList nachgeholfen werden. Eine Änderung über den Quelltext ist eigentlich nur zu empfehlen wenn das Formular oder Teile davon neu erstellt oder vernichtet werden.

aktivieren und deaktivieren

Wenn sie beispielsweise die Eigenschaft von Edit1.Enabled auf False stellen, dann wird die Komponente auch bei betätigen der Tab-Taste übersprungen. Weil es bei einer inaktiven Komponente nicht mehr möglich ist, dieser Komponente einen Focus zu zuweisen. Die interne Tab-Nummerierung wird hierbei nicht verändert. Das führt dazu, dass beim Aktivieren der inaktiven Komponente wieder zur alten Funktionsreihenfolge zurückgekehrt wird. Wenn Sie eine aktivierte Komponente von der TabOrder-Funktion ausschließen wollen, dann benutzen Sie am besten die Eigenschaft TabStop.