3.8 KiB
3.8 KiB
Phase 4 (Abschluss) — Steuerelemente, Menüs, Dialoge
Why
Das Objektmodell (phase-4-objektmodell) macht Formulare und
Steuerelemente ansprechbar, zeigt aber nichts an und nimmt nichts
entgegen. Dieser Change füllt die Klassen mit Verhalten: Darstellung im
Zellenpuffer, Fokus- und Tabreihenfolge, Access-Keys, Maussteuerung,
Menüsystem und die drei vordefinierten Dialoge. Damit schließt Phase 4.
Die drei Dialoge (MSGBOX als Anweisung und als Funktion,
INPUTBOX$) sind die letzten drei offenen Inventareinträge der Phase.
Sie stehen in keiner Steuerelementliste und fielen deshalb bisher
zwischen die Aufgaben.
What Changes
- Steuerelementklassen mit Verhalten: CommandButton, TextBox, ListBox, ComboBox, CheckBox, OptionButton, Frame, Label, HScrollBar, VScrollBar, PictureBox, Timer sowie die Dateisystem-Steuerelemente DirListBox, DriveListBox und FileListBox — je mit Darstellung, Zuständen (normal, fokussiert, deaktiviert) und ihren Methoden.
- Darstellung im Zellenpuffer: Steuerelemente zeichnen in den
vorhandenen Textbildschirm; es entsteht keine zweite Zeichenschicht.
Die höhenabhängige Darstellung des CommandButton (1 Zeile
<Text>, 2 Zeilen Rahmen, ab 3 Zeilen Kasten) und die Rahmenarten der übrigen Klassen folgen der Forms-Referenz. - Fokus, Tabreihenfolge, Access-Keys:
TabIndex/TabStop, Weiterschalten mit Tab und Umschalt-Tab,&im Text als Access-Key,Default- undCancel-Schaltfläche für Enter und Esc,SETFOCUS,GotFocus/LostFocus. - Maussteuerung: Die Mausereignisse aus
phase-4-ereignisschleifewerden auf Steuerelemente abgebildet — Trefferprüfung über die Z-Reihenfolge, Klick, Doppelklick,MouseDown/MouseMove/MouseUpsowie Ziehen und Ablegen (DragMode,DRAG,DragDrop,DragOver). - Menüsystem: Menüleiste je Formular, bis zu sechs Ebenen,
Access-Keys, Shortcuts,
Checked/Enabled/Visible/Separator, Menü-Steuerelement-Arrays. Während ein Menü den Fokus hält, ruhen Zeitereignisse und Traps. - Vordefinierte Dialoge (3 Inventareinträge):
MSGBOXals Anweisung und als Funktion mit den Schaltflächengruppen und Rückgabewerten der Sprachreferenz,INPUTBOX$mit fester Größe 46×16 Zeichen und Positionierung in Zeichen. - Timer als Steuerelement:
Interval0–65 535 ms auf der Zeitquelle der Ereignisschleife, EreignisTimer.
Non-Goals: Der Formular-Designer und die Projektverwaltung (Phase 5); native Erweiterungssteuerelemente (Stufe 2); grafische Ausgabe in der PictureBox — sie ist eine Textzeichenfläche.
Capabilities
New Capabilities
forms-steuerelemente: Verhalten und Darstellung der Steuerelementklassen, Fokus- und Tabreihenfolge, Access-Keys, Maussteuerung mit Ziehen und Ablegen, Menüsystem und die vordefinierten Dialoge.
Modified Capabilities
kompat-testkorpus: Der Korpus SHALL Formularprogramme mit Bildschirm-Sollausgabe und deterministischer Ereignisfolge führen.
Impact
crates/tb-ui: Darstellung und Eingabebehandlung je Klasse, Menüs, Dialoge, Trefferprüfung, Fokusverwaltung.crates/tb-runtime: Fehler 260–480 des Forms-Bereichs als Auslöser;MSGBOX/INPUTBOX$als Sprachelemente.crates/tb-frontend: Signaturen vonMSGBOX(Anweisung und Funktion) undINPUTBOX$; dieUnsupported-Absenkung vonMSGBOXentfällt.tests/compat: Formularprogramme mit Sollausgabe; die Programme ausgithub.com/cout/vbdosals Kompatibilitätsnachweis.docs/:forms-referenz.md— die offenen Detailfragen (Optik je Zustand, Z-Reihenfolge, Reihenfolge gleichzeitig fälliger Timer) werden beantwortet;inventar.mdsetzt die Einträge dieses Changes aufimplementiert.- PLAN.md: Punkte „Steuerelemente", „Menüsystem", „Fokus-/Tab-Reihenfolge", „Vordefinierte Dialoge" und die beiden Meilensteine der Phase 4.