54 lines
2.6 KiB
Markdown
54 lines
2.6 KiB
Markdown
## MODIFIED Requirements
|
|
|
|
### Requirement: Fokus, Tabreihenfolge und Access-Keys
|
|
Der Fokus SHALL mit Tab in aufsteigender `TabIndex`-Folge und mit
|
|
Umschalt-Tab rückwärts wechseln; Elemente mit `TabStop = 0` oder
|
|
`Enabled = 0` MUST übersprungen werden. Ein `&` im Text SHALL den
|
|
folgenden Buchstaben zum Access-Key machen, der mit Alt das Element
|
|
auslöst oder ihm den Fokus gibt. Enter SHALL die `Default`-Schaltfläche
|
|
auslösen, Esc die `Cancel`-Schaltfläche. Fokuswechsel MUST `LostFocus`
|
|
am alten und `GotFocus` am neuen Element auslösen, in dieser Reihenfolge.
|
|
|
|
Die über das Terminal gelieferte Rückwärtstab-Taste SHALL denselben Fokuswechsel wie Tab mit Umschalt auslösen. Die Reihenfolge LostFocus vor GotFocus SHALL auch an den Wirkungen der BASIC-Handler sichtbar bleiben.
|
|
|
|
#### Scenario: Tab überspringt
|
|
- **WHEN** das mittlere von drei Elementen `TabStop = 0` trägt und Tab gedrückt wird
|
|
- **THEN** erhält das dritte Element den Fokus
|
|
|
|
#### Scenario: Access-Key
|
|
- **WHEN** eine Schaltfläche `Caption = "&OK"` trägt und Alt+O gedrückt wird
|
|
- **THEN** wird ihr `Click`-Ereignis ausgelöst
|
|
|
|
#### Scenario: Reihenfolge der Fokusereignisse
|
|
- **WHEN** der Fokus von `Text1` auf `Text2` wechselt
|
|
- **THEN** läuft erst `Text1_LostFocus`, danach `Text2_GotFocus`
|
|
|
|
#### Scenario: Handlerwirkungen in Fokusreihenfolge
|
|
- **WHEN** LostFocus den Text L und GotFocus den Text G an dieselbe Variable anhängen
|
|
- **THEN** lautet das Ergebnis LG
|
|
|
|
#### Scenario: Rückwärtstab vom Terminal
|
|
- **WHEN** das Terminal eine Rückwärtstab-Taste liefert
|
|
- **THEN** wechselt der Fokus zum vorherigen zulässigen TabIndex
|
|
|
|
### Requirement: Menüsystem
|
|
Ein Formular SHALL eine Menüleiste mit bis zu sechs Ebenen tragen.
|
|
Menüeinträge SHALL Access-Keys (`&`), Shortcuts, `Checked`, `Enabled`,
|
|
`Visible` und Separatoren (`-`) unterstützen; ein Separator MUST NOT
|
|
`Checked`, deaktiviert oder mit Shortcut versehen sein, ein Menütitel
|
|
MUST NOT einen Shortcut tragen. Solange ein Menü geöffnet ist, MUST die
|
|
Zustellung von Zeitereignissen und klassischen Traps ruhen und danach
|
|
fortgesetzt werden.
|
|
|
|
#### Scenario: Menüauswahl löst Click aus
|
|
- **WHEN** ein Menüeintrag über seinen Access-Key gewählt wird
|
|
- **THEN** läuft seine `Click`-Prozedur
|
|
|
|
#### Scenario: Traps ruhen im geöffneten Menü
|
|
- **WHEN** ein Menü geöffnet ist und ein Zeit-Trap fällig wird
|
|
- **THEN** läuft sein Handler erst, nachdem das Menü geschlossen wurde
|
|
|
|
#### Scenario: UEVENT an gewöhnlicher Anweisungsgrenze
|
|
- **WHEN** ein Menü offen ist und UEVENT vor einer Zuweisung ansteht
|
|
- **THEN** läuft dessen Handler erst nach dem Schließen des Menüs
|