Implement and archive Phase 5 form designer
This commit is contained in:
@@ -43,7 +43,7 @@ Mausmodus und Alternate Screen zurück.
|
||||
- Die Umgebung zeigt unten anklickbare Tastenkürzel und `00001:001` als
|
||||
Zeile/Spalte. Der Designer besitzt stattdessen die Properties Bar.
|
||||
F10 wechselt dort zwischen Menü- und Properties Bar, F2 fokussiert Value.
|
||||
Die fachliche Formularbearbeitung folgt in Change 05.
|
||||
Die Formularbearbeitung ist unten beschrieben.
|
||||
|
||||
## Speichern und Wechseln
|
||||
|
||||
@@ -127,7 +127,7 @@ Library-Symbole/Aufrufvertrag und der native Verbraucher-Nachweis stehen
|
||||
explizit in [PLAN.md, Phase 6](../PLAN.md). Ein umbenanntes TBC erfüllt
|
||||
keines der beiden Exportziele.
|
||||
|
||||
## Befehlsabdeckung nach Change 03
|
||||
## Befehlsabdeckung nach Change 05
|
||||
|
||||
Alle Referenzbefehle sind in ihrer Menüfolge vorhanden. Fachbefehle der
|
||||
folgenden Changes sind sichtbar deaktiviert und zeigen einen
|
||||
@@ -138,17 +138,17 @@ Output-Fokus unterbricht Ctrl+C sofort die Sitzung, ohne eine BASIC-Taste einzur
|
||||
| Bereich | Rahmenaktion jetzt | Fachaktion im Folgechange |
|
||||
| --- | --- | --- |
|
||||
| File | New/Open/Save Project, New Form/Module, Add/Remove File, Save File/As, Load/Save Text, Print (UTF-8-Datei), Shell, Exit | — |
|
||||
| Edit | Undo, Cut/Copy/Paste/Clear, New Sub/Function | Event Procedures: 05 |
|
||||
| View | Code/Form-Auswahl, Prozedurauswahl, Included File/Lines, Diagnostics, Designer Menu Bar/Value-Fokus, Output Screen | Grid Lines: 05; Next Statement: 06 |
|
||||
| Edit | Undo, Cut/Copy/Paste/Clear, New Sub/Function, Event Procedures | — |
|
||||
| View | Code/Form-Auswahl, Prozedurauswahl, Included File/Lines, Diagnostics, Designer Menu Bar/Value-Fokus, Grid Lines, Output Screen | Next Statement: 06 |
|
||||
| Search | Find, Selected Text, Repeat Last Find, Change | — |
|
||||
| Run | Start/Restart/Continue/Pause, COMMAND$, wirksame Startdatei und beide Make-Dialoge | Native Erzeugung: Phase 6 |
|
||||
| Debug | Vollständiges Menü und Kürzelzuordnung, einschließlich F7/F8/F9/F10 und History | Watches, Watchpoints, Trace, History, Breakpoints, Break on Errors, Set Next Statement: 06 |
|
||||
| Options | Display, Set Paths, Right Mouse, Save, Syntax Checking einschließlich Zeilenprüfung | Kontext-Hilfe: 07 |
|
||||
| Window | New Window, Arrange All, Calls/Debug/Help/Immediate/Output/Project, aktive Codeliste, alle Fensterkürzel | Debug/Calls/Immediate-Inhalte: 06; Hilfeinhalt: 07 |
|
||||
| Designer Tools/Window | Tools-Menü, Formliste und gemeinsamer Fenster-/Modusrahmen | Controls/Toolbox, Color Palette, Menu Design Window: 05 |
|
||||
| Designer Tools/Window | Vollständige Toolbox einschließlich Spin, Formliste, Color Palette, Menu Design Window | — |
|
||||
| Help | Vollständiges Menü, About und Help-Fensterrahmen | Index, Contents, Keyboard, Topic, Using Help, Tutorial: 07 |
|
||||
|
||||
Editor, inkrementelle Übersetzung und Ausführung sind umgesetzt. Die gesamte
|
||||
Editor, inkrementelle Übersetzung, Ausführung und Formulardesigner sind umgesetzt. Die gesamte
|
||||
Phase-5-Abnahme erfolgt in Change 08.
|
||||
|
||||
## Programme ausführen
|
||||
@@ -298,7 +298,7 @@ Erfolge und Diagnosen gehören zu Projektrevision, expandierten Quellen und Form
|
||||
Stand zurück; ein Fehler macht keinen früheren Erfolg aktuell. Geöffnete
|
||||
Include-Puffer bleiben maßgeblich gegenüber externen Dateiänderungen. Noch nicht
|
||||
geöffnete Includes werden erneut vom Loader gelesen und verglichen. Start und
|
||||
Fortsetzen der VM werden in Change 04 an diese Schnittstelle angebunden.
|
||||
Fortsetzen der VM verwenden diese Schnittstelle.
|
||||
|
||||
Release-Messungen und Aufruf stehen in [tbvm-design.md](tbvm-design.md).
|
||||
|
||||
@@ -307,3 +307,80 @@ Die Ausführungstests liegen in `crates/tb-ide/tests/execution.rs` und
|
||||
`cargo build -p tb-ide && python3 tests/support/ide-execution-pty.py` unter Unix
|
||||
in einem unsichtbaren PTY die echten Shell-/Terminalübergaben und das Fortsetzen
|
||||
nach STOP. Das Skript verwendet ausschließlich temporäre Projekte.
|
||||
|
||||
|
||||
## Formulare gestalten
|
||||
|
||||
File → New Form öffnet ein neues FRM-Dokument mit 40×15 Zellen. Toolbox
|
||||
links und Tools-Menü verwenden dieselben Klassenmetadaten: auch Datei-,
|
||||
Verzeichnis- und Laufwerkslisten, Timer sowie VSpin/HSpin sind enthalten.
|
||||
Doppelklick auf einen Toolboxeintrag platziert einen gültigen Standard im
|
||||
gewählten Container (sonst auf der Form); mit Tastatur: Window → Toolbox,
|
||||
Pfeile, Enter. Ein einfacher Klick oder Tools wählt das Werkzeug zum
|
||||
Aufziehen auf der Designfläche. Esc beendet die Werkzeugwahl.
|
||||
|
||||
Die Vorschau verwendet FormsModel und TextScreen, führt aber keinen
|
||||
Ereigniscode und keine Timer aus. Timer erscheinen als `[T]`-Marken.
|
||||
Klicken wählt auch deaktivierte/unsichtbare Controls aus, Ctrl+Klick bildet
|
||||
Mehrfachauswahlen. Tab/Shift+Tab folgt TabIndex. Drag verschiebt, die acht
|
||||
Handles skalieren. Pfeile bewegen um eine, Ctrl+Pfeile um fünf Zellen;
|
||||
Shift+Pfeile ändern die Größe (mit Ctrl ebenfalls fünf). View → Grid Lines
|
||||
schaltet das Raster. Koordinaten sind relativ zum tatsächlichen Container.
|
||||
Unzulässige Größen/Positionen werden vor der gesamten Änderung abgewiesen.
|
||||
|
||||
Oben wechseln F10 und F11 zwischen Properties Bar und Menü. Klicken auf
|
||||
die Property-Auswahl öffnet die Klassenproperties; Bild auf/ab blättert
|
||||
sie auf der Designfläche. F2 fokussiert Value, Ctrl+A ersetzt den Wert,
|
||||
Enter übernimmt und Esc verwirft die Eingabe. Der rechte Bereich zeigt
|
||||
Position und Größe auch bei langen Namen/Werten. Boolean-Werte sind
|
||||
`true`/`false` beziehungsweise `-1`/`0`. Typen, Metadatenbereiche und
|
||||
Laufzeitregeln werden geprüft; schreibgeschützte Properties bleiben erhalten.
|
||||
Spin.Style wählt 0 (vertikal, 1×2) oder 1 (horizontal, 2×1); Width/Height
|
||||
sind bei Spin schreibgeschützt. Explizites Index=0 erzeugt ein Control-Array.
|
||||
|
||||
Cut/Copy/Paste/Clear und Undo wirken im Designer auf Controls; die
|
||||
Textzwischenablage des Editors bleibt getrennt. Container nehmen ihre
|
||||
Kinder mit. Paste verlangt einen Container und vergibt freie Namen,
|
||||
wobei die Arraygruppen und expliziten Indizes erhalten bleiben. Eine
|
||||
Mehrfachaktion ist genau eine Undo-Einheit. Nach Clear/Cut weist ein Dialog
|
||||
auf erhaltenen, nun ungebundenen Code hin. Code wird nicht gelöscht.
|
||||
|
||||
CtlName/FormName ändern auch gebundene Codeverweise und Ereignisnamen
|
||||
in betroffenen Projektdateien und Includes. Kommentare, Strings und
|
||||
unabhängige Variablen bleiben erhalten. Beide Projektstände werden
|
||||
übersetzt und ihre Objektbindungen verglichen. Konflikte oder mehrdeutige
|
||||
Include-Verweise verhindern die gesamte Änderung. Undo aus einer beteiligten
|
||||
Datei nimmt sie überall zurück; spätere Änderungen in einer anderen
|
||||
beteiligten Datei müssen zuerst rückgängig gemacht werden.
|
||||
|
||||
Window → Menu Design Window zeigt die Menühierarchie. `+`/Insert fügt unter
|
||||
dem gewählten Menü (sonst unter der Form) ein, Del löscht, Enter/Edit öffnet
|
||||
Caption, CtlName, Tag, Index, Flags und Shortcut. `&` markiert Access-Keys,
|
||||
`-` einen Separator. Leerer Index bedeutet skalar; `0` ist ein Arrayindex.
|
||||
Die Pfeilbuttons beziehungsweise Ctrl+Links/Rechts ändern die Ebene,
|
||||
Ctrl+Auf/Ab die Reihenfolge. Änderungen des Dialogs sind gemeinsam rücknehmbar.
|
||||
Angeboten werden F1–F10 mit unterstützten Modifikatoren sowie Ctrl+Buchstaben
|
||||
außer Ctrl+C, das dem Programmabbruch vorbehalten bleibt. Unbekannte Importwerte
|
||||
werden nicht als gültige Shortcuts angeboten; Menütitel und Separatoren tragen
|
||||
keinen Shortcut.
|
||||
|
||||
Window → Color Palette bietet getrennte ForeColor-/BackColor-Zeilen. Eine
|
||||
Farbfläche auf Form/Control ziehen trägt diese Farbe auf. Enter öffnet
|
||||
zusätzlich den Dialog zum gemeinsamen Auftragen beider Farben auf die
|
||||
Auswahl oder ausdrücklich die Form. Window bietet außerdem Toolbox, Help
|
||||
und die Formliste; der Help-Inhalt folgt in Change 07.
|
||||
|
||||
F12/Edit → Event Procedures wählt Objekt und erlaubtes Ereignis. Eine
|
||||
vorhandene gebundene Prozedur wird geöffnet; sonst entsteht ein New-Sub-Rumpf
|
||||
mit den bestehenden Eventtypen, BYREF-Parametern und gegebenenfalls führendem
|
||||
`Index AS INTEGER`. DEFtype aus Includes bleibt wirksam. Zweiter Aufruf
|
||||
öffnet dieselbe Prozedur. Shift+F12/View → Form führt zum zugehörigen
|
||||
Dokument und Control zurück; View → Code behält die Codeposition. Struktur
|
||||
und Code bleiben dabei ungespeichert im gemeinsamen Dokument.
|
||||
|
||||
Save File/As/Project verwendet den vorhandenen FRM-Writer. Dieser lässt
|
||||
überflüssige Defaultwerte aus, erhält aber explizites Index=0. Binärimporte
|
||||
benötigen weiter ein separates Textziel. Die Designer-Tests prüfen alle
|
||||
Klassen, Geometrie, Properties, Maus/Tastatur, Transaktionen, Ereignisse und
|
||||
Speicher-Roundtrips. Der CLI-Integrationstest erzeugt eine FRM über dieselben
|
||||
Designeraktionen und übersetzt sie mit dem echten `tbc build`-Prozess.
|
||||
|
||||
Reference in New Issue
Block a user