Files

2.6 KiB
Raw Blame History

MODIFIED Requirements

Requirement: Steuerelemente mit Listeninhalt

ListBox und ComboBox SHALL ADDITEM und REMOVEITEM unterstützen und List, ListCount, ListIndex und Text konsistent führen; bei Sorted = -1 SHALL die Einfügereihenfolge der Sortierung folgen. ListIndex = -1 SHALL „keine Auswahl" bedeuten. Die ComboBox SHALL die drei Stilarten (Dropdown, Simple, Dropdown List) darstellen.

Eine Zuweisung von ListIndex = -1 SHALL in leerer wie gefüllter Liste zulässig sein. Einfügen vor der Auswahl SHALL ihren Index verschieben, Entfernen der Auswahl SHALL sie aufheben. Eine ListBox ohne Auswahl SHALL Text als leeren String liefern; editierbare ComboBox-Stile SHALL ihren unabhängigen Eingabetext erhalten.

Scenario: Element hinzufügen

  • WHEN List1.ADDITEM "b" und List1.ADDITEM "a" bei Sorted = -1 ausgeführt werden
  • THEN liefert List1.List(0) den Wert a und List1.ListCount den Wert 2

Scenario: Keine Auswahl

  • WHEN eine ListBox ohne Auswahl gelesen wird
  • THEN liefert ListIndex den Wert 1

Scenario: Auswahl ausdrücklich aufheben

  • WHEN nach ADDITEM die Eigenschaft ListIndex auf -1 gesetzt wird
  • THEN tritt kein Fehler auf und ListIndex ist -1

Scenario: Eintrag vor Auswahl einfügen

  • WHEN vor einem ausgewählten Eintrag ein Element eingefügt wird
  • THEN bleibt derselbe Eintrag ausgewählt und sein Index steigt um 1

Requirement: Timer-Steuerelement

Ein Timer SHALL bei Enabled = -1 und Interval > 0 sein Timer-Ereignis im eingestellten Abstand auslösen, gestützt auf die Zeitquelle der Ereignissteuerung. Interval = 0 SHALL ihn abschalten. Sind mehrere Timer gleichzeitig fällig, SHALL die Reihenfolge festgelegt und dokumentiert sein.

Die erste Frist SHALL ab dem Einschalten beziehungsweise neu gesetzten Intervall zählen. Zeit vor der Aktivierung MUST NOT nachgeholt werden. Deaktivierung oder Interval = 0 SHALL noch anstehende Timerereignisse verwerfen.

Scenario: Timer feuert im Abstand

  • WHEN ein Timer mit Interval = 100 läuft und die Zeit um 250 ms vorrückt
  • THEN ist sein Ereignis zweimal gelaufen

Scenario: Interval 0 schaltet ab

  • WHEN Timer1.Interval = 0 gesetzt wird
  • THEN läuft kein weiteres Ereignis

Scenario: Späte Aktivierung

  • WHEN bei Hostzeit 1000 ms ein zuvor inaktiver Timer mit Interval 100 eingeschaltet wird
  • THEN läuft bis 1099 ms kein Timerereignis und bei 1100 ms genau eines

Scenario: Abschalten verwirft anstehende Ereignisse

  • WHEN Timerereignisse anstehen und vor ihrer Zustellung Interval auf 0 gesetzt wird
  • THEN werden sie nicht mehr zugestellt