Files
TerminalBasic/openspec/changes/phase-4-steuerelemente/tasks.md

5.0 KiB
Raw Blame History

1. Festlegungen vorab

  • 1.1 Optik je Klasse und Zustand (normal, fokussiert, deaktiviert) als Zeichenbild in docs/forms-referenz.md festhalten, aus den Original-Screenshots abgeleitet (D3); verifiziert durch je ein Zeichenbild pro Klasse und Zustand
  • 1.2 Z-Reihenfolge und Timer-Reihenfolge festlegen und als unsere Festlegung kennzeichnen (D3); verifiziert durch die beiden Abschnitte in der Forms-Referenz

2. Darstellung und Eingabekette

  • 2.1 Zeichnen je Klasse aus dem Eigenschaftszustand in den Zellenpuffer (D1); verifiziert durch Snapshot-Tests je Klasse, darunter die drei Höhenformen des CommandButton
  • 2.2 Eingabekette für Tastatur und Maus (D2); verifiziert durch Unit-Tests, die je Station den Vorrang prüfen
  • 2.3 Trefferprüfung über die Z-Reihenfolge; verifiziert durch einen Test mit überlappenden Steuerelementen und einem Klick ins Formular

3. Fokus und Tastatur

  • 3.1 Tabreihenfolge über TabIndex/TabStop vorwärts und rückwärts, deaktivierte Elemente überspringen; verifiziert durch Unit-Tests je Fall
  • 3.2 Access-Keys aus &, Default für Enter, Cancel für Esc; verifiziert durch Unit-Tests je Auslöser
  • 3.3 SETFOCUS, GotFocus/LostFocus in der festgelegten Reihenfolge; verifiziert durch einen Test, der die Reihenfolge der beiden Ereignisse prüft

4. Steuerelementklassen

  • 4.1 CommandButton, Label, Frame, CheckBox, OptionButton (inkl. Gruppierung im Container); verifiziert durch Snapshot- und Verhaltenstests je Klasse
  • 4.2 TextBox mit Text, SelStart/SelLength/SelText, MultiLine, ScrollBars, Ereignis Change; verifiziert durch Tests für Eingabe, Auswahl und Umbruch
  • 4.3 ListBox und ComboBox mit ADDITEM/REMOVEITEM, List/ListCount/ListIndex, Sorted, den drei ComboBox-Stilarten; verifiziert durch Tests für Einfügen, Sortierung und „keine Auswahl"
  • 4.4 HScrollBar/VScrollBar mit Min/Max/Value/SmallChange/LargeChange/Attached und Ereignis Change; verifiziert durch Tests für Tastatur- und Mausbedienung
  • 4.5 PictureBox als Textzeichenfläche (PRINT, CLS, CurrentX/CurrentY, TEXTWIDTH/TEXTHEIGHT) und als Container; verifiziert durch Snapshot-Tests
  • 4.6 Timer auf der Zeitquelle der Ereignisschleife, Reihenfolge nach 1.2; verifiziert durch Tests mit virtueller Zeit für Abstand, Interval = 0 und zwei gleichzeitig fällige Timer
  • 4.7 DirListBox, DriveListBox, FileListBox plattformneutral (D6) mit Path/Drive/FileName/Pattern und ihren Ereignissen; verifiziert durch Tests auf einem angelegten Verzeichnisbaum
  • 4.8 Ziehen und Ablegen: DragMode, DRAG action%, DragOver mit Zustand, DragDrop mit Quelle; verifiziert durch Tests für automatisches und manuelles Ziehen sowie Abbruch

5. Menüs und Dialoge

  • 5.1 Menüleiste mit bis zu sechs Ebenen, Access-Keys, Shortcuts, Checked/Enabled/Visible/Separator, Menü-Arrays; verifiziert durch Snapshot- und Verhaltenstests, darunter die Regelverstöße (Separator mit Shortcut)
  • 5.2 Ereigniszustellung ruht im geöffneten Menü über den vorhandenen STOP-Zustand (D5); verifiziert durch einen Test mit fälligem Zeit-Trap bei offenem Menü
  • 5.3 MSGBOX als Anweisung und Funktion mit Schaltflächengruppen, Vorgabeschaltfläche und Rückgabewerten; verifiziert durch Tests je Gruppe und Rückgabewert
  • 5.4 INPUTBOX$ mit fester Größe 46×16, Positionierung in Zeichen, leerem String bei Abbruch; verifiziert durch Snapshot-Test und Abbruchtest
  • 5.5 Frontend-Signaturen für MSGBOX (Anweisung und Funktion) und INPUTBOX$, Unsupported-Absenkung entfernen; verifiziert durch cargo test -p tb-frontend

6. Korpus und Kompatibilität

  • 6.1 Ereignisfolge-Direktive im Programmkopf und ihre Einspeisung durch den Harness; verifiziert durch einen Harness-Test mit deklarierten Tasten-, Maus- und Zeitereignissen
  • 6.2 Formular-Korpusprogramme für Fokus/Tab, Access-Key, Mausklick, Menüauswahl, Liste, Timer und modalen Dialog; verifiziert durch cargo test -p tb-cli gegen die Sollausgaben
  • 6.3 Meilenstein: die Formularprogramme aus github.com/cout/vbdos übersetzen und bedienen, jeden Befund festhalten; verifiziert durch den Lauf über den Bestand mit Befundliste
  • 6.4 Meilenstein: die Beispiel-Formularprogramme des Korpus laufen; verifiziert durch den grünen Korpuslauf

7. Inventar, Dokumentation, Abschluss

  • 7.1 docs/inventar.md: Einträge dieses Changes auf implementiert; verifiziert durch inventar_stimmt_mit_code_ueberein mit Abdeckung 0 offen für Phase 4
  • 7.2 Abweichungen (Dateisystem-Steuerelemente, festgelegte Optik, Z- und Timer-Reihenfolge) in docs/sprachreferenz.md eintragen; verifiziert durch den Abschnitt „Abweichungen"
  • 7.3 PLAN.md: die verbleibenden Phase-4-Punkte abhaken und die Befunde der Phase festhalten; verifiziert durch die abgeschlossene Phase-4-Liste
  • 7.4 cargo test grün und openspec validate phase-4-steuerelemente --strict ohne Befund; verifiziert durch beide Kommandos