4.1 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, FileListBox und VSpin/HSpin — 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. - VBDOS-Kompatibilität:
.MAK- und$INCLUDE-Auflösung,RUN, VSpin/HSpin, die verwendete Zellgrafik (SCREEN,LINE,PAINT,VIEW) und die von den Beispielen benutzten Common-Dialog-Routinen.
Non-Goals: Der Formular-Designer (Phase 5). Für den geforderten VBDOS-Kompatibilitätsnachweis notwendige Projektauflösung, native Erweiterungssteuerelemente und Grafikausgabe gehören zu diesem Change.
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$und die benötigte Zellgrafik.crates/tb-frontend: Signaturen vonMSGBOX(Anweisung und Funktion) undINPUTBOX$, Projektquellen,RUNund die verwendete Grafiksyntax.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.