Phase 4: Formularmodell und Objektsprache
This commit is contained in:
1 parent
5cf5a6582c
commit
54488b5b67
35 files changed
+7195
-627
No files matched your search
@@ -0,0 +1,2 @@
|
||||
schema: spec-driven
|
||||
created: 2026-09-04
|
||||
@@ -0,0 +1,140 @@
|
||||
# Design — Formularmodell und Objektsprache
|
||||
|
||||
## Context
|
||||
|
||||
Siehe proposal.md — Why. Drei Bestandsbefunde schneiden den Entwurf zu:
|
||||
|
||||
1. **Der Punkt gehört heute zum Bezeichner.** Der Lexer nimmt `.` in den
|
||||
Namen auf (`a.b` ist ein Token), die Semantik zerlegt ihn nur, wenn
|
||||
die Basis ein UDT ist. Ein Objektzugriff fällt deshalb durch bis zur
|
||||
impliziten Variablen.
|
||||
2. **`!` ist heute immer Typsuffix.** `Form1!Text1` liest sich als
|
||||
`Form1` (SINGLE) gefolgt von `Text1`.
|
||||
3. **Der Rückrufweg existiert bereits** aus `phase-4-ereignisschleife`:
|
||||
die VM kann ein Ziel anspringen und zurückkehren. Ereignisprozeduren
|
||||
brauchen davon die Variante „Prozedur mit Argumenten" statt
|
||||
„`GOSUB`-Ziel".
|
||||
|
||||
## Goals / Non-Goals
|
||||
|
||||
**Goals:**
|
||||
|
||||
- Objektzugriffe, die zur Übersetzungszeit gegen die Klasse geprüft
|
||||
werden — kein Nachschlagen von Eigenschaftsnamen zur Laufzeit im
|
||||
Normalfall.
|
||||
- Ein Formularmodell, das die Steuerelemente des Folge-Changes nur noch
|
||||
füllen, nicht umbauen müssen.
|
||||
- Modales `SHOW` ohne zweiten Ausführungsstrang.
|
||||
|
||||
**Non-Goals:**
|
||||
|
||||
- Darstellung und Eingabebehandlung der Steuerelemente.
|
||||
- Ein offenes Objektsystem für Anwenderklassen (Stufe 2).
|
||||
|
||||
## Decisions
|
||||
|
||||
### D1 — Objektnamen werden zur Übersetzungszeit aufgelöst
|
||||
|
||||
Formulare und Steuerelemente sind zur Übersetzungszeit bekannt: sie
|
||||
stammen aus der `.FRM`-Beschreibung bzw. dem Formular-Designer. Der
|
||||
Compiler löst `Text1.Text` deshalb in „Objekt 7, Eigenschaft 12" auf und
|
||||
prüft Typ und Schreibbarkeit sofort.
|
||||
|
||||
| Alternative | Warum nicht |
|
||||
|---|---|
|
||||
| Eigenschaftsnamen zur Laufzeit nachschlagen | Verlagert jeden Tippfehler in eine Laufzeitmeldung — genau die stille Lücke, die der Guiding Principle verbietet; zudem eine Hashsuche pro Zugriff |
|
||||
|
||||
Der Zugriff über `CONTROL`-Parameter (`SUB Setze (c AS CONTROL)`) bleibt
|
||||
dynamisch; dort prüft die Laufzeit und `TYPEOF` fragt die Klasse ab.
|
||||
|
||||
### D2 — Der Punkt wird im Lexer nicht mehr gefaltet, sondern im Parser zerlegt
|
||||
|
||||
Der Lexer liefert weiterhin ein Token, das Punkte enthalten kann (die
|
||||
Rückwärtskompatibilität für Variablennamen mit Punkt bleibt: klassische
|
||||
Programme nutzen `Kunde.Name` als gewöhnlichen Variablennamen). Die
|
||||
Auflösung entscheidet die Semantik in dieser Reihenfolge:
|
||||
|
||||
```
|
||||
Basis ist UDT-Variable -> Feldzugriff wie bisher
|
||||
Basis ist Formular/Control -> Eigenschaftszugriff
|
||||
Basis ist SCREEN -> Bildschirmobjekt
|
||||
sonst -> Diagnose mit Basis- und Gliedname
|
||||
(heute: implizite Variable)
|
||||
```
|
||||
|
||||
Damit ändert sich für bestehende Programme nichts, solange kein Objekt
|
||||
den Namen trägt; Objekte gewinnen gegen implizite Variablen, weil
|
||||
implizite Variablen mit Punkt im Namen ohnehin ein Bug waren.
|
||||
|
||||
### D3 — `!` entscheidet sich am folgenden Token
|
||||
|
||||
Folgt auf `!` unmittelbar ein Bezeichner, ist es der Container-Operator;
|
||||
sonst das Typsuffix. `Wert! = 1.5` und `Form1!Text1.Text = "a"` sind
|
||||
damit unterscheidbar, ohne dass der Lexer wissen muss, was `Form1` ist.
|
||||
Der Fall `Wert!Text` — SINGLE-Variable direkt gefolgt von einem
|
||||
Bezeichner — ist in keiner gültigen Syntax des Dialekts erreichbar.
|
||||
|
||||
### D4 — Modales SHOW ist ein Frame-Zustand, kein zweiter Strang
|
||||
|
||||
`SHOW 1` markiert den aufrufenden Frame als „wartet auf Formular X" und
|
||||
gibt an die Ereignisschleife zurück. Die Schleife stellt weiter zu; wird
|
||||
X entladen oder verborgen, läuft der markierte Frame an der Anweisung
|
||||
nach `SHOW` weiter.
|
||||
|
||||
```
|
||||
Form1.SHOW 1
|
||||
|
|
||||
+-- Frame markieren (wartet auf Form1) --> Ereignisschleife
|
||||
|
|
||||
Ereignisse zustellen <--+
|
||||
|
|
||||
UNLOAD Form1 ------------+
|
||||
|
|
||||
PRINT "danach" <-- Marke faellt, Frame laeuft weiter
|
||||
```
|
||||
|
||||
Eine geschachtelte Schleife innerhalb des `SHOW`-Aufrufs wäre die
|
||||
naheliegende Variante, macht aber die Stapeltiefe von der Zahl
|
||||
verschachtelter modaler Formulare abhängig und verträgt sich nicht mit
|
||||
dem Einzelschritt des Debuggers in Phase 5.
|
||||
|
||||
### D5 — Ereignisprozeduren sind gewöhnliche Prozeduren mit fester Signatur
|
||||
|
||||
Der Dispatch ruft `Command1_Click` wie jeden anderen Prozeduraufruf, nur
|
||||
angestoßen von der Schleife statt von einer Anweisung. Damit gelten
|
||||
Frames, `ON ERROR`, `EXIT SUB` und der Debugger unverändert. Die
|
||||
Zuordnung Name → Objekt/Ereignis entsteht zur Übersetzungszeit; zur
|
||||
Laufzeit ist es ein Index.
|
||||
|
||||
### D6 — Das Inventar bekommt eine zweite Quelle
|
||||
|
||||
Die Themenliste der Original-Hilfe führt das Objektmodell nicht. Statt
|
||||
es unerfasst zu lassen — und damit die Abnahme der Phase 6 blind zu
|
||||
machen —, führt das Inventar Eigenschaften, Methoden und Ereignisse je
|
||||
Klasse mit der Forms-Referenz als Quelle. Der bestehende Abgleichstest
|
||||
prüft sie mit denselben Regeln.
|
||||
|
||||
Größenordnung: 17 Klassen, in Summe einige hundert Einträge. Das ist der
|
||||
Preis dafür, dass „Vollständigkeit ist das Soll" für Forms überhaupt
|
||||
messbar wird.
|
||||
|
||||
## Risks / Trade-offs
|
||||
|
||||
- **Namenskollision Objekt gegen Variable** → Objekte gewinnen; ein
|
||||
Programm mit einer Variablen `Text1` und einem Steuerelement `Text1`
|
||||
bekommt eine Diagnose statt einer stillen Umdeutung.
|
||||
- **Der Inventarzuwachs erschlägt die Tabelle** → eigene Gruppe je
|
||||
Klasse, damit die bestehenden Gruppen lesbar bleiben; der Abgleichstest
|
||||
nennt weiterhin einzelne Einträge.
|
||||
- **Modale Marke und Debugger** → der Fortsetzungspunkt ist derselbe
|
||||
Mechanismus wie `STOP`/`CONT`; er wird zusammen mit Phase 5 geprüft.
|
||||
- **`.FRM` fehlt noch** → bis dahin entstehen Formulare im Test aus einer
|
||||
im Code aufgebauten Beschreibung; das Objektmodell hängt nicht am
|
||||
Dateiformat.
|
||||
|
||||
## Open Questions
|
||||
|
||||
- Z-Reihenfolge bei überlappenden Steuerelementen (offene Detailfrage der
|
||||
Forms-Referenz) — betrifft die Darstellung, nicht das Objektmodell.
|
||||
- Ob `ControlPanel` alle 18 Systemfarbwerte des Vorbilds abbildet oder
|
||||
eine Teilmenge, entscheidet sich mit der Darstellung im Folge-Change.
|
||||
+644
@@ -0,0 +1,644 @@
|
||||
# Klassen und Eigenschaften — Belegstand
|
||||
|
||||
Diese Matrix ist die maschinennahe Auswertung der bestehenden
|
||||
[Forms-Referenz](../../../docs/forms-referenz.md). Deren Primärquellen sind die
|
||||
dekodierte Originalhilfe, `CONSTANT.BI`, die Stringtabellen der
|
||||
Originalprogramme und zeitgenössische Beispielprojekte. Die Quelle steht in
|
||||
jeder Tabellenzeile; „Forms-Referenz: Klasse-Art“ meint den gleichnamigen,
|
||||
quellengeprüften Klassenabschnitt, nicht eine neue Behauptung dieses Changes.
|
||||
|
||||
Als unabhängige Gegenprobe wurde `cout/vbdos` in Commit
|
||||
`1cdd2b32b829fe1721d0b6aecc433abc47a96fb6` ausgewertet. Die binären
|
||||
Formulare belegen unter anderem `Form_Load`, `Form_Unload`,
|
||||
`Form_Resize`, `*_Click`, `Caption`, `Text`, `Visible`,
|
||||
`Enabled`, `SelText` und `MousePointer` in
|
||||
`microsoft/check.frm`, `notepad.frm`, `qlbview.frm`, `seek.frm`,
|
||||
`spindemo.frm`, `graphics/graphics.frm` und
|
||||
`misc/mentors/mentors.frm`. Die SHA-256-Werte sind der Reihe nach
|
||||
`ed552601…52c9`, `e11b76f6…3c97`, `358e7bab…b97`,
|
||||
`2c7bf1df…b68`, `259e67a3…c738`, `58901348…ecb0f` und
|
||||
`e3ac6a4e…87fb`. Die Beispiele erweitern die Originalhilfe nicht; sie
|
||||
bestätigen nur tatsächlich verwendete Namen und Signaturen.
|
||||
|
||||
„INTEGER (Boolean)“ wird in BASIC als 0/−1 gesehen. Ein fehlender
|
||||
Wertebereich bedeutet, dass der Typ selbst begrenzt. „leer/Objektzustand“
|
||||
ist kein frei schreibbarer Zahlenwert. Die Tabelle enthält bewusst auch
|
||||
Elemente des Folge-Changes: hier werden ihre Namen und Verträge festgelegt,
|
||||
nicht Darstellung oder Eingabeverhalten.
|
||||
|
||||
## Ereignissignaturen und Steuerelement-Arrays
|
||||
|
||||
| Ereignisfamilie | Forms-Referenz | Compiler-Signatur |
|
||||
|---|---|---|
|
||||
| `KeyDown`, `KeyUp` | `(KeyCode AS INTEGER, Shift AS INTEGER)` | identisch |
|
||||
| `KeyPress` | `(KeyAscii AS INTEGER)` | identisch |
|
||||
| `MouseDown`, `MouseMove`, `MouseUp` | `(Button AS INTEGER, Shift AS INTEGER, X AS SINGLE, Y AS SINGLE)` | identisch |
|
||||
| `DragDrop` | `(Source AS CONTROL, X AS SINGLE, Y AS SINGLE)` | identisch |
|
||||
| `DragOver` | `(Source AS CONTROL, X AS SINGLE, Y AS SINGLE, State AS INTEGER)` | identisch |
|
||||
| `Unload` | `(Cancel AS INTEGER)` | identisch; ungleich 0 verhindert Entladen |
|
||||
| alle übrigen geführten Ereignisse | keine Parameter | identisch |
|
||||
|
||||
Bei einem Steuerelement-Array steht gemäß Forms-Referenz
|
||||
`Index AS INTEGER` immer als erster Parameter vor der jeweiligen
|
||||
Signatur. `LOAD name(index)` klont Element 0 als Vorlage;
|
||||
`UNLOAD name(index)` darf ein Entwurfszeit-Element nicht entfernen
|
||||
(Fehler 362). `KeyAscii` ist die dokumentierte UTF-8-Abweichung als
|
||||
Unicode-Codepoint; Shift-Bits (1/2/4), Maustasten (1/2/4) und
|
||||
DragOver-State (0/1/2) bleiben kompatibel.
|
||||
|
||||
|
||||
## FORM
|
||||
|
||||
| Element | Art/Typ | Bereich | Vorgabe | Laufzeit | Quelle |
|
||||
|---|---|---|---|---|---|
|
||||
| `BACKCOLOR` | Eigenschaft / INTEGER | 0…15 | 7 | lesen/schreiben | Forms-Referenz: FORM-Eigenschaften |
|
||||
| `ENABLED` | Eigenschaft / INTEGER (Boolean) | — | True | lesen/schreiben | Forms-Referenz: FORM-Eigenschaften |
|
||||
| `HEIGHT` | Eigenschaft / INTEGER | 1…254 | 1 | lesen/schreiben | Forms-Referenz: FORM-Eigenschaften |
|
||||
| `LEFT` | Eigenschaft / INTEGER | 0…254 | 0 | lesen/schreiben | Forms-Referenz: FORM-Eigenschaften |
|
||||
| `MOUSEPOINTER` | Eigenschaft / INTEGER | 0…12 | 0 | lesen/schreiben | Forms-Referenz: FORM-Eigenschaften |
|
||||
| `PARENT` | Eigenschaft / CONTROL/FORM | — | leer/Objektzustand | read-only | Forms-Referenz: FORM-Eigenschaften |
|
||||
| `TAG` | Eigenschaft / STRING | — | `` | lesen/schreiben | Forms-Referenz: FORM-Eigenschaften |
|
||||
| `TOP` | Eigenschaft / INTEGER | 0…254 | 0 | lesen/schreiben | Forms-Referenz: FORM-Eigenschaften |
|
||||
| `VISIBLE` | Eigenschaft / INTEGER (Boolean) | — | False | lesen/schreiben | Forms-Referenz: FORM-Eigenschaften |
|
||||
| `WIDTH` | Eigenschaft / INTEGER | 1…254 | 1 | lesen/schreiben | Forms-Referenz: FORM-Eigenschaften |
|
||||
| `FORECOLOR` | Eigenschaft / INTEGER | 0…15 | 0 | lesen/schreiben | Forms-Referenz: FORM-Eigenschaften |
|
||||
| `DRAGMODE` | Eigenschaft / INTEGER | 0…1 | 0 | lesen/schreiben | Forms-Referenz: FORM-Eigenschaften |
|
||||
| `AUTOREDRAW` | Eigenschaft / INTEGER (Boolean) | — | False | lesen/schreiben | Forms-Referenz: FORM-Eigenschaften |
|
||||
| `BORDERSTYLE` | Eigenschaft / INTEGER | 0…6 | 2 | lesen/schreiben | Forms-Referenz: FORM-Eigenschaften |
|
||||
| `CAPTION` | Eigenschaft / STRING | — | `` | lesen/schreiben | Forms-Referenz: FORM-Eigenschaften |
|
||||
| `CONTROLBOX` | Eigenschaft / INTEGER (Boolean) | — | True | lesen/schreiben | Forms-Referenz: FORM-Eigenschaften |
|
||||
| `CURRENTX` | Eigenschaft / INTEGER | — | 0 | lesen/schreiben | Forms-Referenz: FORM-Eigenschaften |
|
||||
| `CURRENTY` | Eigenschaft / INTEGER | — | 0 | lesen/schreiben | Forms-Referenz: FORM-Eigenschaften |
|
||||
| `FORMNAME` | Eigenschaft / STRING | — | `` | lesen/schreiben | Forms-Referenz: FORM-Eigenschaften |
|
||||
| `FORMTYPE` | Eigenschaft / INTEGER | 0…1 | 0 | lesen/schreiben | Forms-Referenz: FORM-Eigenschaften |
|
||||
| `MAXBUTTON` | Eigenschaft / INTEGER (Boolean) | — | True | lesen/schreiben | Forms-Referenz: FORM-Eigenschaften |
|
||||
| `MINBUTTON` | Eigenschaft / INTEGER (Boolean) | — | True | lesen/schreiben | Forms-Referenz: FORM-Eigenschaften |
|
||||
| `SCALEHEIGHT` | Eigenschaft / INTEGER | — | leer/Objektzustand | read-only | Forms-Referenz: FORM-Eigenschaften |
|
||||
| `SCALEWIDTH` | Eigenschaft / INTEGER | — | leer/Objektzustand | read-only | Forms-Referenz: FORM-Eigenschaften |
|
||||
| `WINDOWSTATE` | Eigenschaft / INTEGER | 0…2 | 0 | lesen/schreiben | Forms-Referenz: FORM-Eigenschaften |
|
||||
| `CLS` | Methode | — | — | Aufruf | Forms-Referenz: FORM-Methoden |
|
||||
| `DRAG` | Methode | — | — | Aufruf | Forms-Referenz: FORM-Methoden |
|
||||
| `HIDE` | Methode | — | — | Aufruf | Forms-Referenz: FORM-Methoden |
|
||||
| `LOAD` | Methode | — | — | Aufruf | Forms-Referenz: FORM-Methoden |
|
||||
| `MOVE` | Methode | — | — | Aufruf | Forms-Referenz: FORM-Methoden |
|
||||
| `PRINT` | Methode | — | — | Aufruf | Forms-Referenz: FORM-Methoden |
|
||||
| `PRINTFORM` | Methode | — | — | Aufruf | Forms-Referenz: FORM-Methoden |
|
||||
| `REFRESH` | Methode | — | — | Aufruf | Forms-Referenz: FORM-Methoden |
|
||||
| `SHOW` | Methode | — | — | Aufruf | Forms-Referenz: FORM-Methoden |
|
||||
| `TEXTHEIGHT` | Methode | — | — | Aufruf | Forms-Referenz: FORM-Methoden |
|
||||
| `TEXTWIDTH` | Methode | — | — | Aufruf | Forms-Referenz: FORM-Methoden |
|
||||
| `UNLOAD` | Methode | — | — | Aufruf | Forms-Referenz: FORM-Methoden |
|
||||
| `CLICK` | Ereignis | — | — | Dispatch | Forms-Referenz: FORM-Ereignisse |
|
||||
| `DBLCLICK` | Ereignis | — | — | Dispatch | Forms-Referenz: FORM-Ereignisse |
|
||||
| `DRAGDROP` | Ereignis | — | — | Dispatch | Forms-Referenz: FORM-Ereignisse |
|
||||
| `DRAGOVER` | Ereignis | — | — | Dispatch | Forms-Referenz: FORM-Ereignisse |
|
||||
| `GOTFOCUS` | Ereignis | — | — | Dispatch | Forms-Referenz: FORM-Ereignisse |
|
||||
| `KEYDOWN` | Ereignis | — | — | Dispatch | Forms-Referenz: FORM-Ereignisse |
|
||||
| `KEYPRESS` | Ereignis | — | — | Dispatch | Forms-Referenz: FORM-Ereignisse |
|
||||
| `KEYUP` | Ereignis | — | — | Dispatch | Forms-Referenz: FORM-Ereignisse |
|
||||
| `LOAD` | Ereignis | — | — | Dispatch | Forms-Referenz: FORM-Ereignisse |
|
||||
| `LOSTFOCUS` | Ereignis | — | — | Dispatch | Forms-Referenz: FORM-Ereignisse |
|
||||
| `MOUSEDOWN` | Ereignis | — | — | Dispatch | Forms-Referenz: FORM-Ereignisse |
|
||||
| `MOUSEMOVE` | Ereignis | — | — | Dispatch | Forms-Referenz: FORM-Ereignisse |
|
||||
| `MOUSEUP` | Ereignis | — | — | Dispatch | Forms-Referenz: FORM-Ereignisse |
|
||||
| `PAINT` | Ereignis | — | — | Dispatch | Forms-Referenz: FORM-Ereignisse |
|
||||
| `RESIZE` | Ereignis | — | — | Dispatch | Forms-Referenz: FORM-Ereignisse |
|
||||
| `UNLOAD` | Ereignis | — | — | Dispatch | Forms-Referenz: FORM-Ereignisse |
|
||||
|
||||
## CHECKBOX
|
||||
|
||||
| Element | Art/Typ | Bereich | Vorgabe | Laufzeit | Quelle |
|
||||
|---|---|---|---|---|---|
|
||||
| `BACKCOLOR` | Eigenschaft / INTEGER | 0…15 | 7 | lesen/schreiben | Forms-Referenz: CHECKBOX-Eigenschaften |
|
||||
| `ENABLED` | Eigenschaft / INTEGER (Boolean) | — | True | lesen/schreiben | Forms-Referenz: CHECKBOX-Eigenschaften |
|
||||
| `HEIGHT` | Eigenschaft / INTEGER | 1…254 | 1 | lesen/schreiben | Forms-Referenz: CHECKBOX-Eigenschaften |
|
||||
| `LEFT` | Eigenschaft / INTEGER | 0…254 | 0 | lesen/schreiben | Forms-Referenz: CHECKBOX-Eigenschaften |
|
||||
| `MOUSEPOINTER` | Eigenschaft / INTEGER | 0…12 | 0 | lesen/schreiben | Forms-Referenz: CHECKBOX-Eigenschaften |
|
||||
| `PARENT` | Eigenschaft / CONTROL/FORM | — | leer/Objektzustand | read-only | Forms-Referenz: CHECKBOX-Eigenschaften |
|
||||
| `TAG` | Eigenschaft / STRING | — | `` | lesen/schreiben | Forms-Referenz: CHECKBOX-Eigenschaften |
|
||||
| `TOP` | Eigenschaft / INTEGER | 0…254 | 0 | lesen/schreiben | Forms-Referenz: CHECKBOX-Eigenschaften |
|
||||
| `VISIBLE` | Eigenschaft / INTEGER (Boolean) | — | True | lesen/schreiben | Forms-Referenz: CHECKBOX-Eigenschaften |
|
||||
| `WIDTH` | Eigenschaft / INTEGER | 1…254 | 1 | lesen/schreiben | Forms-Referenz: CHECKBOX-Eigenschaften |
|
||||
| `INDEX` | Eigenschaft / INTEGER | — | 0 | lesen/schreiben | Forms-Referenz: CHECKBOX-Eigenschaften |
|
||||
| `TABINDEX` | Eigenschaft / INTEGER | — | 0 | lesen/schreiben | Forms-Referenz: CHECKBOX-Eigenschaften |
|
||||
| `TABSTOP` | Eigenschaft / INTEGER (Boolean) | — | True | lesen/schreiben | Forms-Referenz: CHECKBOX-Eigenschaften |
|
||||
| `CTLNAME` | Eigenschaft / STRING | — | `` | lesen/schreiben | Forms-Referenz: CHECKBOX-Eigenschaften |
|
||||
| `FORECOLOR` | Eigenschaft / INTEGER | 0…15 | 0 | lesen/schreiben | Forms-Referenz: CHECKBOX-Eigenschaften |
|
||||
| `DRAGMODE` | Eigenschaft / INTEGER | 0…1 | 0 | lesen/schreiben | Forms-Referenz: CHECKBOX-Eigenschaften |
|
||||
| `CAPTION` | Eigenschaft / STRING | — | `` | lesen/schreiben | Forms-Referenz: CHECKBOX-Eigenschaften |
|
||||
| `VALUE` | Eigenschaft / INTEGER | 0…2 | 0 | lesen/schreiben | Forms-Referenz: CHECKBOX-Eigenschaften |
|
||||
| `DRAG` | Methode | — | — | Aufruf | Forms-Referenz: CHECKBOX-Methoden |
|
||||
| `MOVE` | Methode | — | — | Aufruf | Forms-Referenz: CHECKBOX-Methoden |
|
||||
| `REFRESH` | Methode | — | — | Aufruf | Forms-Referenz: CHECKBOX-Methoden |
|
||||
| `SETFOCUS` | Methode | — | — | Aufruf | Forms-Referenz: CHECKBOX-Methoden |
|
||||
| `CLICK` | Ereignis | — | — | Dispatch | Forms-Referenz: CHECKBOX-Ereignisse |
|
||||
| `DRAGDROP` | Ereignis | — | — | Dispatch | Forms-Referenz: CHECKBOX-Ereignisse |
|
||||
| `DRAGOVER` | Ereignis | — | — | Dispatch | Forms-Referenz: CHECKBOX-Ereignisse |
|
||||
| `GOTFOCUS` | Ereignis | — | — | Dispatch | Forms-Referenz: CHECKBOX-Ereignisse |
|
||||
| `KEYDOWN` | Ereignis | — | — | Dispatch | Forms-Referenz: CHECKBOX-Ereignisse |
|
||||
| `KEYPRESS` | Ereignis | — | — | Dispatch | Forms-Referenz: CHECKBOX-Ereignisse |
|
||||
| `KEYUP` | Ereignis | — | — | Dispatch | Forms-Referenz: CHECKBOX-Ereignisse |
|
||||
| `LOSTFOCUS` | Ereignis | — | — | Dispatch | Forms-Referenz: CHECKBOX-Ereignisse |
|
||||
|
||||
## COMBOBOX
|
||||
|
||||
| Element | Art/Typ | Bereich | Vorgabe | Laufzeit | Quelle |
|
||||
|---|---|---|---|---|---|
|
||||
| `BACKCOLOR` | Eigenschaft / INTEGER | 0…15 | 7 | lesen/schreiben | Forms-Referenz: COMBOBOX-Eigenschaften |
|
||||
| `ENABLED` | Eigenschaft / INTEGER (Boolean) | — | True | lesen/schreiben | Forms-Referenz: COMBOBOX-Eigenschaften |
|
||||
| `HEIGHT` | Eigenschaft / INTEGER | 1…254 | 1 | lesen/schreiben | Forms-Referenz: COMBOBOX-Eigenschaften |
|
||||
| `LEFT` | Eigenschaft / INTEGER | 0…254 | 0 | lesen/schreiben | Forms-Referenz: COMBOBOX-Eigenschaften |
|
||||
| `MOUSEPOINTER` | Eigenschaft / INTEGER | 0…12 | 0 | lesen/schreiben | Forms-Referenz: COMBOBOX-Eigenschaften |
|
||||
| `PARENT` | Eigenschaft / CONTROL/FORM | — | leer/Objektzustand | read-only | Forms-Referenz: COMBOBOX-Eigenschaften |
|
||||
| `TAG` | Eigenschaft / STRING | — | `` | lesen/schreiben | Forms-Referenz: COMBOBOX-Eigenschaften |
|
||||
| `TOP` | Eigenschaft / INTEGER | 0…254 | 0 | lesen/schreiben | Forms-Referenz: COMBOBOX-Eigenschaften |
|
||||
| `VISIBLE` | Eigenschaft / INTEGER (Boolean) | — | True | lesen/schreiben | Forms-Referenz: COMBOBOX-Eigenschaften |
|
||||
| `WIDTH` | Eigenschaft / INTEGER | 1…254 | 1 | lesen/schreiben | Forms-Referenz: COMBOBOX-Eigenschaften |
|
||||
| `INDEX` | Eigenschaft / INTEGER | — | 0 | lesen/schreiben | Forms-Referenz: COMBOBOX-Eigenschaften |
|
||||
| `TABINDEX` | Eigenschaft / INTEGER | — | 0 | lesen/schreiben | Forms-Referenz: COMBOBOX-Eigenschaften |
|
||||
| `TABSTOP` | Eigenschaft / INTEGER (Boolean) | — | True | lesen/schreiben | Forms-Referenz: COMBOBOX-Eigenschaften |
|
||||
| `CTLNAME` | Eigenschaft / STRING | — | `` | lesen/schreiben | Forms-Referenz: COMBOBOX-Eigenschaften |
|
||||
| `FORECOLOR` | Eigenschaft / INTEGER | 0…15 | 0 | lesen/schreiben | Forms-Referenz: COMBOBOX-Eigenschaften |
|
||||
| `DRAGMODE` | Eigenschaft / INTEGER | 0…1 | 0 | lesen/schreiben | Forms-Referenz: COMBOBOX-Eigenschaften |
|
||||
| `LIST` | Eigenschaft / STRING | — | leer/Objektzustand | read-only | Forms-Referenz: COMBOBOX-Eigenschaften |
|
||||
| `LISTCOUNT` | Eigenschaft / INTEGER | — | leer/Objektzustand | read-only | Forms-Referenz: COMBOBOX-Eigenschaften |
|
||||
| `LISTINDEX` | Eigenschaft / INTEGER | — | -1 | lesen/schreiben | Forms-Referenz: COMBOBOX-Eigenschaften |
|
||||
| `SORTED` | Eigenschaft / INTEGER (Boolean) | — | False | lesen/schreiben | Forms-Referenz: COMBOBOX-Eigenschaften |
|
||||
| `SELLENGTH` | Eigenschaft / INTEGER | — | 0 | lesen/schreiben | Forms-Referenz: COMBOBOX-Eigenschaften |
|
||||
| `SELSTART` | Eigenschaft / INTEGER | — | 0 | lesen/schreiben | Forms-Referenz: COMBOBOX-Eigenschaften |
|
||||
| `SELTEXT` | Eigenschaft / STRING | — | `` | lesen/schreiben | Forms-Referenz: COMBOBOX-Eigenschaften |
|
||||
| `STYLE` | Eigenschaft / INTEGER | 0…2 | 0 | lesen/schreiben | Forms-Referenz: COMBOBOX-Eigenschaften |
|
||||
| `TEXT` | Eigenschaft / STRING | — | `` | lesen/schreiben | Forms-Referenz: COMBOBOX-Eigenschaften |
|
||||
| `ADDITEM` | Methode | — | — | Aufruf | Forms-Referenz: COMBOBOX-Methoden |
|
||||
| `DRAG` | Methode | — | — | Aufruf | Forms-Referenz: COMBOBOX-Methoden |
|
||||
| `MOVE` | Methode | — | — | Aufruf | Forms-Referenz: COMBOBOX-Methoden |
|
||||
| `REFRESH` | Methode | — | — | Aufruf | Forms-Referenz: COMBOBOX-Methoden |
|
||||
| `REMOVEITEM` | Methode | — | — | Aufruf | Forms-Referenz: COMBOBOX-Methoden |
|
||||
| `SETFOCUS` | Methode | — | — | Aufruf | Forms-Referenz: COMBOBOX-Methoden |
|
||||
| `CHANGE` | Ereignis | — | — | Dispatch | Forms-Referenz: COMBOBOX-Ereignisse |
|
||||
| `CLICK` | Ereignis | — | — | Dispatch | Forms-Referenz: COMBOBOX-Ereignisse |
|
||||
| `DBLCLICK` | Ereignis | — | — | Dispatch | Forms-Referenz: COMBOBOX-Ereignisse |
|
||||
| `DRAGDROP` | Ereignis | — | — | Dispatch | Forms-Referenz: COMBOBOX-Ereignisse |
|
||||
| `DRAGOVER` | Ereignis | — | — | Dispatch | Forms-Referenz: COMBOBOX-Ereignisse |
|
||||
| `DROPDOWN` | Ereignis | — | — | Dispatch | Forms-Referenz: COMBOBOX-Ereignisse |
|
||||
| `GOTFOCUS` | Ereignis | — | — | Dispatch | Forms-Referenz: COMBOBOX-Ereignisse |
|
||||
| `KEYDOWN` | Ereignis | — | — | Dispatch | Forms-Referenz: COMBOBOX-Ereignisse |
|
||||
| `KEYPRESS` | Ereignis | — | — | Dispatch | Forms-Referenz: COMBOBOX-Ereignisse |
|
||||
| `KEYUP` | Ereignis | — | — | Dispatch | Forms-Referenz: COMBOBOX-Ereignisse |
|
||||
| `LOSTFOCUS` | Ereignis | — | — | Dispatch | Forms-Referenz: COMBOBOX-Ereignisse |
|
||||
| `MOUSEDOWN` | Ereignis | — | — | Dispatch | Forms-Referenz: COMBOBOX-Ereignisse |
|
||||
| `MOUSEMOVE` | Ereignis | — | — | Dispatch | Forms-Referenz: COMBOBOX-Ereignisse |
|
||||
| `MOUSEUP` | Ereignis | — | — | Dispatch | Forms-Referenz: COMBOBOX-Ereignisse |
|
||||
|
||||
## COMMANDBUTTON
|
||||
|
||||
| Element | Art/Typ | Bereich | Vorgabe | Laufzeit | Quelle |
|
||||
|---|---|---|---|---|---|
|
||||
| `BACKCOLOR` | Eigenschaft / INTEGER | 0…15 | 7 | lesen/schreiben | Forms-Referenz: COMMANDBUTTON-Eigenschaften |
|
||||
| `ENABLED` | Eigenschaft / INTEGER (Boolean) | — | True | lesen/schreiben | Forms-Referenz: COMMANDBUTTON-Eigenschaften |
|
||||
| `HEIGHT` | Eigenschaft / INTEGER | 1…254 | 1 | lesen/schreiben | Forms-Referenz: COMMANDBUTTON-Eigenschaften |
|
||||
| `LEFT` | Eigenschaft / INTEGER | 0…254 | 0 | lesen/schreiben | Forms-Referenz: COMMANDBUTTON-Eigenschaften |
|
||||
| `MOUSEPOINTER` | Eigenschaft / INTEGER | 0…12 | 0 | lesen/schreiben | Forms-Referenz: COMMANDBUTTON-Eigenschaften |
|
||||
| `PARENT` | Eigenschaft / CONTROL/FORM | — | leer/Objektzustand | read-only | Forms-Referenz: COMMANDBUTTON-Eigenschaften |
|
||||
| `TAG` | Eigenschaft / STRING | — | `` | lesen/schreiben | Forms-Referenz: COMMANDBUTTON-Eigenschaften |
|
||||
| `TOP` | Eigenschaft / INTEGER | 0…254 | 0 | lesen/schreiben | Forms-Referenz: COMMANDBUTTON-Eigenschaften |
|
||||
| `VISIBLE` | Eigenschaft / INTEGER (Boolean) | — | True | lesen/schreiben | Forms-Referenz: COMMANDBUTTON-Eigenschaften |
|
||||
| `WIDTH` | Eigenschaft / INTEGER | 1…254 | 1 | lesen/schreiben | Forms-Referenz: COMMANDBUTTON-Eigenschaften |
|
||||
| `INDEX` | Eigenschaft / INTEGER | — | 0 | lesen/schreiben | Forms-Referenz: COMMANDBUTTON-Eigenschaften |
|
||||
| `TABINDEX` | Eigenschaft / INTEGER | — | 0 | lesen/schreiben | Forms-Referenz: COMMANDBUTTON-Eigenschaften |
|
||||
| `TABSTOP` | Eigenschaft / INTEGER (Boolean) | — | True | lesen/schreiben | Forms-Referenz: COMMANDBUTTON-Eigenschaften |
|
||||
| `CTLNAME` | Eigenschaft / STRING | — | `` | lesen/schreiben | Forms-Referenz: COMMANDBUTTON-Eigenschaften |
|
||||
| `DRAGMODE` | Eigenschaft / INTEGER | 0…1 | 0 | lesen/schreiben | Forms-Referenz: COMMANDBUTTON-Eigenschaften |
|
||||
| `CANCEL` | Eigenschaft / INTEGER (Boolean) | — | False | lesen/schreiben | Forms-Referenz: COMMANDBUTTON-Eigenschaften |
|
||||
| `CAPTION` | Eigenschaft / STRING | — | `` | lesen/schreiben | Forms-Referenz: COMMANDBUTTON-Eigenschaften |
|
||||
| `DEFAULT` | Eigenschaft / INTEGER (Boolean) | — | False | lesen/schreiben | Forms-Referenz: COMMANDBUTTON-Eigenschaften |
|
||||
| `VALUE` | Eigenschaft / INTEGER (Boolean) | — | False | lesen/schreiben | Forms-Referenz: COMMANDBUTTON-Eigenschaften |
|
||||
| `DRAG` | Methode | — | — | Aufruf | Forms-Referenz: COMMANDBUTTON-Methoden |
|
||||
| `MOVE` | Methode | — | — | Aufruf | Forms-Referenz: COMMANDBUTTON-Methoden |
|
||||
| `REFRESH` | Methode | — | — | Aufruf | Forms-Referenz: COMMANDBUTTON-Methoden |
|
||||
| `SETFOCUS` | Methode | — | — | Aufruf | Forms-Referenz: COMMANDBUTTON-Methoden |
|
||||
| `CLICK` | Ereignis | — | — | Dispatch | Forms-Referenz: COMMANDBUTTON-Ereignisse |
|
||||
| `DRAGDROP` | Ereignis | — | — | Dispatch | Forms-Referenz: COMMANDBUTTON-Ereignisse |
|
||||
| `DRAGOVER` | Ereignis | — | — | Dispatch | Forms-Referenz: COMMANDBUTTON-Ereignisse |
|
||||
| `GOTFOCUS` | Ereignis | — | — | Dispatch | Forms-Referenz: COMMANDBUTTON-Ereignisse |
|
||||
| `KEYDOWN` | Ereignis | — | — | Dispatch | Forms-Referenz: COMMANDBUTTON-Ereignisse |
|
||||
| `KEYPRESS` | Ereignis | — | — | Dispatch | Forms-Referenz: COMMANDBUTTON-Ereignisse |
|
||||
| `KEYUP` | Ereignis | — | — | Dispatch | Forms-Referenz: COMMANDBUTTON-Ereignisse |
|
||||
| `LOSTFOCUS` | Ereignis | — | — | Dispatch | Forms-Referenz: COMMANDBUTTON-Ereignisse |
|
||||
|
||||
## DIRLISTBOX
|
||||
|
||||
| Element | Art/Typ | Bereich | Vorgabe | Laufzeit | Quelle |
|
||||
|---|---|---|---|---|---|
|
||||
| `BACKCOLOR` | Eigenschaft / INTEGER | 0…15 | 7 | lesen/schreiben | Forms-Referenz: DIRLISTBOX-Eigenschaften |
|
||||
| `ENABLED` | Eigenschaft / INTEGER (Boolean) | — | True | lesen/schreiben | Forms-Referenz: DIRLISTBOX-Eigenschaften |
|
||||
| `HEIGHT` | Eigenschaft / INTEGER | 1…254 | 1 | lesen/schreiben | Forms-Referenz: DIRLISTBOX-Eigenschaften |
|
||||
| `LEFT` | Eigenschaft / INTEGER | 0…254 | 0 | lesen/schreiben | Forms-Referenz: DIRLISTBOX-Eigenschaften |
|
||||
| `MOUSEPOINTER` | Eigenschaft / INTEGER | 0…12 | 0 | lesen/schreiben | Forms-Referenz: DIRLISTBOX-Eigenschaften |
|
||||
| `PARENT` | Eigenschaft / CONTROL/FORM | — | leer/Objektzustand | read-only | Forms-Referenz: DIRLISTBOX-Eigenschaften |
|
||||
| `TAG` | Eigenschaft / STRING | — | `` | lesen/schreiben | Forms-Referenz: DIRLISTBOX-Eigenschaften |
|
||||
| `TOP` | Eigenschaft / INTEGER | 0…254 | 0 | lesen/schreiben | Forms-Referenz: DIRLISTBOX-Eigenschaften |
|
||||
| `VISIBLE` | Eigenschaft / INTEGER (Boolean) | — | True | lesen/schreiben | Forms-Referenz: DIRLISTBOX-Eigenschaften |
|
||||
| `WIDTH` | Eigenschaft / INTEGER | 1…254 | 1 | lesen/schreiben | Forms-Referenz: DIRLISTBOX-Eigenschaften |
|
||||
| `INDEX` | Eigenschaft / INTEGER | — | 0 | lesen/schreiben | Forms-Referenz: DIRLISTBOX-Eigenschaften |
|
||||
| `TABINDEX` | Eigenschaft / INTEGER | — | 0 | lesen/schreiben | Forms-Referenz: DIRLISTBOX-Eigenschaften |
|
||||
| `TABSTOP` | Eigenschaft / INTEGER (Boolean) | — | True | lesen/schreiben | Forms-Referenz: DIRLISTBOX-Eigenschaften |
|
||||
| `CTLNAME` | Eigenschaft / STRING | — | `` | lesen/schreiben | Forms-Referenz: DIRLISTBOX-Eigenschaften |
|
||||
| `PATH` | Eigenschaft / STRING | — | `` | lesen/schreiben | Forms-Referenz: DIRLISTBOX-Eigenschaften |
|
||||
| `TEXT` | Eigenschaft / STRING | — | `` | lesen/schreiben | Forms-Referenz: DIRLISTBOX-Eigenschaften |
|
||||
| `CHANGE` | Ereignis | — | — | Dispatch | Forms-Referenz: DIRLISTBOX-Ereignisse |
|
||||
| `CLICK` | Ereignis | — | — | Dispatch | Forms-Referenz: DIRLISTBOX-Ereignisse |
|
||||
| `DBLCLICK` | Ereignis | — | — | Dispatch | Forms-Referenz: DIRLISTBOX-Ereignisse |
|
||||
| `PATHCHANGE` | Ereignis | — | — | Dispatch | Forms-Referenz: DIRLISTBOX-Ereignisse |
|
||||
|
||||
## DRIVELISTBOX
|
||||
|
||||
| Element | Art/Typ | Bereich | Vorgabe | Laufzeit | Quelle |
|
||||
|---|---|---|---|---|---|
|
||||
| `BACKCOLOR` | Eigenschaft / INTEGER | 0…15 | 7 | lesen/schreiben | Forms-Referenz: DRIVELISTBOX-Eigenschaften |
|
||||
| `ENABLED` | Eigenschaft / INTEGER (Boolean) | — | True | lesen/schreiben | Forms-Referenz: DRIVELISTBOX-Eigenschaften |
|
||||
| `HEIGHT` | Eigenschaft / INTEGER | 1…254 | 1 | lesen/schreiben | Forms-Referenz: DRIVELISTBOX-Eigenschaften |
|
||||
| `LEFT` | Eigenschaft / INTEGER | 0…254 | 0 | lesen/schreiben | Forms-Referenz: DRIVELISTBOX-Eigenschaften |
|
||||
| `MOUSEPOINTER` | Eigenschaft / INTEGER | 0…12 | 0 | lesen/schreiben | Forms-Referenz: DRIVELISTBOX-Eigenschaften |
|
||||
| `PARENT` | Eigenschaft / CONTROL/FORM | — | leer/Objektzustand | read-only | Forms-Referenz: DRIVELISTBOX-Eigenschaften |
|
||||
| `TAG` | Eigenschaft / STRING | — | `` | lesen/schreiben | Forms-Referenz: DRIVELISTBOX-Eigenschaften |
|
||||
| `TOP` | Eigenschaft / INTEGER | 0…254 | 0 | lesen/schreiben | Forms-Referenz: DRIVELISTBOX-Eigenschaften |
|
||||
| `VISIBLE` | Eigenschaft / INTEGER (Boolean) | — | True | lesen/schreiben | Forms-Referenz: DRIVELISTBOX-Eigenschaften |
|
||||
| `WIDTH` | Eigenschaft / INTEGER | 1…254 | 1 | lesen/schreiben | Forms-Referenz: DRIVELISTBOX-Eigenschaften |
|
||||
| `INDEX` | Eigenschaft / INTEGER | — | 0 | lesen/schreiben | Forms-Referenz: DRIVELISTBOX-Eigenschaften |
|
||||
| `TABINDEX` | Eigenschaft / INTEGER | — | 0 | lesen/schreiben | Forms-Referenz: DRIVELISTBOX-Eigenschaften |
|
||||
| `TABSTOP` | Eigenschaft / INTEGER (Boolean) | — | True | lesen/schreiben | Forms-Referenz: DRIVELISTBOX-Eigenschaften |
|
||||
| `CTLNAME` | Eigenschaft / STRING | — | `` | lesen/schreiben | Forms-Referenz: DRIVELISTBOX-Eigenschaften |
|
||||
| `DRIVE` | Eigenschaft / STRING | — | `` | lesen/schreiben | Forms-Referenz: DRIVELISTBOX-Eigenschaften |
|
||||
| `TEXT` | Eigenschaft / STRING | — | `` | lesen/schreiben | Forms-Referenz: DRIVELISTBOX-Eigenschaften |
|
||||
| `CHANGE` | Ereignis | — | — | Dispatch | Forms-Referenz: DRIVELISTBOX-Ereignisse |
|
||||
|
||||
## FILELISTBOX
|
||||
|
||||
| Element | Art/Typ | Bereich | Vorgabe | Laufzeit | Quelle |
|
||||
|---|---|---|---|---|---|
|
||||
| `BACKCOLOR` | Eigenschaft / INTEGER | 0…15 | 7 | lesen/schreiben | Forms-Referenz: FILELISTBOX-Eigenschaften |
|
||||
| `ENABLED` | Eigenschaft / INTEGER (Boolean) | — | True | lesen/schreiben | Forms-Referenz: FILELISTBOX-Eigenschaften |
|
||||
| `HEIGHT` | Eigenschaft / INTEGER | 1…254 | 1 | lesen/schreiben | Forms-Referenz: FILELISTBOX-Eigenschaften |
|
||||
| `LEFT` | Eigenschaft / INTEGER | 0…254 | 0 | lesen/schreiben | Forms-Referenz: FILELISTBOX-Eigenschaften |
|
||||
| `MOUSEPOINTER` | Eigenschaft / INTEGER | 0…12 | 0 | lesen/schreiben | Forms-Referenz: FILELISTBOX-Eigenschaften |
|
||||
| `PARENT` | Eigenschaft / CONTROL/FORM | — | leer/Objektzustand | read-only | Forms-Referenz: FILELISTBOX-Eigenschaften |
|
||||
| `TAG` | Eigenschaft / STRING | — | `` | lesen/schreiben | Forms-Referenz: FILELISTBOX-Eigenschaften |
|
||||
| `TOP` | Eigenschaft / INTEGER | 0…254 | 0 | lesen/schreiben | Forms-Referenz: FILELISTBOX-Eigenschaften |
|
||||
| `VISIBLE` | Eigenschaft / INTEGER (Boolean) | — | True | lesen/schreiben | Forms-Referenz: FILELISTBOX-Eigenschaften |
|
||||
| `WIDTH` | Eigenschaft / INTEGER | 1…254 | 1 | lesen/schreiben | Forms-Referenz: FILELISTBOX-Eigenschaften |
|
||||
| `INDEX` | Eigenschaft / INTEGER | — | 0 | lesen/schreiben | Forms-Referenz: FILELISTBOX-Eigenschaften |
|
||||
| `TABINDEX` | Eigenschaft / INTEGER | — | 0 | lesen/schreiben | Forms-Referenz: FILELISTBOX-Eigenschaften |
|
||||
| `TABSTOP` | Eigenschaft / INTEGER (Boolean) | — | True | lesen/schreiben | Forms-Referenz: FILELISTBOX-Eigenschaften |
|
||||
| `CTLNAME` | Eigenschaft / STRING | — | `` | lesen/schreiben | Forms-Referenz: FILELISTBOX-Eigenschaften |
|
||||
| `FILENAME` | Eigenschaft / STRING | — | `` | lesen/schreiben | Forms-Referenz: FILELISTBOX-Eigenschaften |
|
||||
| `PATH` | Eigenschaft / STRING | — | `` | lesen/schreiben | Forms-Referenz: FILELISTBOX-Eigenschaften |
|
||||
| `PATTERN` | Eigenschaft / STRING | — | `*.*` | lesen/schreiben | Forms-Referenz: FILELISTBOX-Eigenschaften |
|
||||
| `ARCHIVE` | Eigenschaft / INTEGER (Boolean) | — | True | lesen/schreiben | Forms-Referenz: FILELISTBOX-Eigenschaften |
|
||||
| `HIDDEN` | Eigenschaft / INTEGER (Boolean) | — | False | lesen/schreiben | Forms-Referenz: FILELISTBOX-Eigenschaften |
|
||||
| `NORMAL` | Eigenschaft / INTEGER (Boolean) | — | True | lesen/schreiben | Forms-Referenz: FILELISTBOX-Eigenschaften |
|
||||
| `READONLY` | Eigenschaft / INTEGER (Boolean) | — | True | lesen/schreiben | Forms-Referenz: FILELISTBOX-Eigenschaften |
|
||||
| `SYSTEM` | Eigenschaft / INTEGER (Boolean) | — | False | lesen/schreiben | Forms-Referenz: FILELISTBOX-Eigenschaften |
|
||||
| `TEXT` | Eigenschaft / STRING | — | `` | lesen/schreiben | Forms-Referenz: FILELISTBOX-Eigenschaften |
|
||||
| `CLICK` | Ereignis | — | — | Dispatch | Forms-Referenz: FILELISTBOX-Ereignisse |
|
||||
| `DBLCLICK` | Ereignis | — | — | Dispatch | Forms-Referenz: FILELISTBOX-Ereignisse |
|
||||
| `PATTERNCHANGE` | Ereignis | — | — | Dispatch | Forms-Referenz: FILELISTBOX-Ereignisse |
|
||||
| `PATHCHANGE` | Ereignis | — | — | Dispatch | Forms-Referenz: FILELISTBOX-Ereignisse |
|
||||
|
||||
## FRAME
|
||||
|
||||
| Element | Art/Typ | Bereich | Vorgabe | Laufzeit | Quelle |
|
||||
|---|---|---|---|---|---|
|
||||
| `BACKCOLOR` | Eigenschaft / INTEGER | 0…15 | 7 | lesen/schreiben | Forms-Referenz: FRAME-Eigenschaften |
|
||||
| `ENABLED` | Eigenschaft / INTEGER (Boolean) | — | True | lesen/schreiben | Forms-Referenz: FRAME-Eigenschaften |
|
||||
| `HEIGHT` | Eigenschaft / INTEGER | 1…254 | 1 | lesen/schreiben | Forms-Referenz: FRAME-Eigenschaften |
|
||||
| `LEFT` | Eigenschaft / INTEGER | 0…254 | 0 | lesen/schreiben | Forms-Referenz: FRAME-Eigenschaften |
|
||||
| `MOUSEPOINTER` | Eigenschaft / INTEGER | 0…12 | 0 | lesen/schreiben | Forms-Referenz: FRAME-Eigenschaften |
|
||||
| `PARENT` | Eigenschaft / CONTROL/FORM | — | leer/Objektzustand | read-only | Forms-Referenz: FRAME-Eigenschaften |
|
||||
| `TAG` | Eigenschaft / STRING | — | `` | lesen/schreiben | Forms-Referenz: FRAME-Eigenschaften |
|
||||
| `TOP` | Eigenschaft / INTEGER | 0…254 | 0 | lesen/schreiben | Forms-Referenz: FRAME-Eigenschaften |
|
||||
| `VISIBLE` | Eigenschaft / INTEGER (Boolean) | — | True | lesen/schreiben | Forms-Referenz: FRAME-Eigenschaften |
|
||||
| `WIDTH` | Eigenschaft / INTEGER | 1…254 | 1 | lesen/schreiben | Forms-Referenz: FRAME-Eigenschaften |
|
||||
| `CTLNAME` | Eigenschaft / STRING | — | `` | lesen/schreiben | Forms-Referenz: FRAME-Eigenschaften |
|
||||
| `DRAGMODE` | Eigenschaft / INTEGER | 0…1 | 0 | lesen/schreiben | Forms-Referenz: FRAME-Eigenschaften |
|
||||
| `CAPTION` | Eigenschaft / STRING | — | `` | lesen/schreiben | Forms-Referenz: FRAME-Eigenschaften |
|
||||
| `DRAG` | Methode | — | — | Aufruf | Forms-Referenz: FRAME-Methoden |
|
||||
| `MOVE` | Methode | — | — | Aufruf | Forms-Referenz: FRAME-Methoden |
|
||||
| `REFRESH` | Methode | — | — | Aufruf | Forms-Referenz: FRAME-Methoden |
|
||||
| `DRAGDROP` | Ereignis | — | — | Dispatch | Forms-Referenz: FRAME-Ereignisse |
|
||||
| `DRAGOVER` | Ereignis | — | — | Dispatch | Forms-Referenz: FRAME-Ereignisse |
|
||||
|
||||
## HSCROLLBAR
|
||||
|
||||
| Element | Art/Typ | Bereich | Vorgabe | Laufzeit | Quelle |
|
||||
|---|---|---|---|---|---|
|
||||
| `BACKCOLOR` | Eigenschaft / INTEGER | 0…15 | 7 | lesen/schreiben | Forms-Referenz: HSCROLLBAR-Eigenschaften |
|
||||
| `ENABLED` | Eigenschaft / INTEGER (Boolean) | — | True | lesen/schreiben | Forms-Referenz: HSCROLLBAR-Eigenschaften |
|
||||
| `HEIGHT` | Eigenschaft / INTEGER | 1…254 | 1 | lesen/schreiben | Forms-Referenz: HSCROLLBAR-Eigenschaften |
|
||||
| `LEFT` | Eigenschaft / INTEGER | 0…254 | 0 | lesen/schreiben | Forms-Referenz: HSCROLLBAR-Eigenschaften |
|
||||
| `MOUSEPOINTER` | Eigenschaft / INTEGER | 0…12 | 0 | lesen/schreiben | Forms-Referenz: HSCROLLBAR-Eigenschaften |
|
||||
| `PARENT` | Eigenschaft / CONTROL/FORM | — | leer/Objektzustand | read-only | Forms-Referenz: HSCROLLBAR-Eigenschaften |
|
||||
| `TAG` | Eigenschaft / STRING | — | `` | lesen/schreiben | Forms-Referenz: HSCROLLBAR-Eigenschaften |
|
||||
| `TOP` | Eigenschaft / INTEGER | 0…254 | 0 | lesen/schreiben | Forms-Referenz: HSCROLLBAR-Eigenschaften |
|
||||
| `VISIBLE` | Eigenschaft / INTEGER (Boolean) | — | True | lesen/schreiben | Forms-Referenz: HSCROLLBAR-Eigenschaften |
|
||||
| `WIDTH` | Eigenschaft / INTEGER | 1…254 | 1 | lesen/schreiben | Forms-Referenz: HSCROLLBAR-Eigenschaften |
|
||||
| `INDEX` | Eigenschaft / INTEGER | — | 0 | lesen/schreiben | Forms-Referenz: HSCROLLBAR-Eigenschaften |
|
||||
| `TABINDEX` | Eigenschaft / INTEGER | — | 0 | lesen/schreiben | Forms-Referenz: HSCROLLBAR-Eigenschaften |
|
||||
| `TABSTOP` | Eigenschaft / INTEGER (Boolean) | — | True | lesen/schreiben | Forms-Referenz: HSCROLLBAR-Eigenschaften |
|
||||
| `CTLNAME` | Eigenschaft / STRING | — | `` | lesen/schreiben | Forms-Referenz: HSCROLLBAR-Eigenschaften |
|
||||
| `FORECOLOR` | Eigenschaft / INTEGER | 0…15 | 0 | lesen/schreiben | Forms-Referenz: HSCROLLBAR-Eigenschaften |
|
||||
| `DRAGMODE` | Eigenschaft / INTEGER | 0…1 | 0 | lesen/schreiben | Forms-Referenz: HSCROLLBAR-Eigenschaften |
|
||||
| `ATTACHED` | Eigenschaft / INTEGER (Boolean) | — | leer/Objektzustand | read-only | Forms-Referenz: HSCROLLBAR-Eigenschaften |
|
||||
| `LARGECHANGE` | Eigenschaft / INTEGER | 1…32767 | 1 | lesen/schreiben | Forms-Referenz: HSCROLLBAR-Eigenschaften |
|
||||
| `MIN` | Eigenschaft / INTEGER | -32768…32767 | 0 | lesen/schreiben | Forms-Referenz: HSCROLLBAR-Eigenschaften |
|
||||
| `MAX` | Eigenschaft / INTEGER | -32768…32767 | 32767 | lesen/schreiben | Forms-Referenz: HSCROLLBAR-Eigenschaften |
|
||||
| `SMALLCHANGE` | Eigenschaft / INTEGER | 1…32767 | 1 | lesen/schreiben | Forms-Referenz: HSCROLLBAR-Eigenschaften |
|
||||
| `VALUE` | Eigenschaft / INTEGER | -32768…32767 | 0 | lesen/schreiben | Forms-Referenz: HSCROLLBAR-Eigenschaften |
|
||||
| `DRAG` | Methode | — | — | Aufruf | Forms-Referenz: HSCROLLBAR-Methoden |
|
||||
| `MOVE` | Methode | — | — | Aufruf | Forms-Referenz: HSCROLLBAR-Methoden |
|
||||
| `REFRESH` | Methode | — | — | Aufruf | Forms-Referenz: HSCROLLBAR-Methoden |
|
||||
| `CHANGE` | Ereignis | — | — | Dispatch | Forms-Referenz: HSCROLLBAR-Ereignisse |
|
||||
| `DRAGDROP` | Ereignis | — | — | Dispatch | Forms-Referenz: HSCROLLBAR-Ereignisse |
|
||||
| `DRAGOVER` | Ereignis | — | — | Dispatch | Forms-Referenz: HSCROLLBAR-Ereignisse |
|
||||
| `GOTFOCUS` | Ereignis | — | — | Dispatch | Forms-Referenz: HSCROLLBAR-Ereignisse |
|
||||
| `KEYDOWN` | Ereignis | — | — | Dispatch | Forms-Referenz: HSCROLLBAR-Ereignisse |
|
||||
| `KEYPRESS` | Ereignis | — | — | Dispatch | Forms-Referenz: HSCROLLBAR-Ereignisse |
|
||||
| `KEYUP` | Ereignis | — | — | Dispatch | Forms-Referenz: HSCROLLBAR-Ereignisse |
|
||||
| `LOSTFOCUS` | Ereignis | — | — | Dispatch | Forms-Referenz: HSCROLLBAR-Ereignisse |
|
||||
|
||||
## LABEL
|
||||
|
||||
| Element | Art/Typ | Bereich | Vorgabe | Laufzeit | Quelle |
|
||||
|---|---|---|---|---|---|
|
||||
| `BACKCOLOR` | Eigenschaft / INTEGER | 0…15 | 7 | lesen/schreiben | Forms-Referenz: LABEL-Eigenschaften |
|
||||
| `ENABLED` | Eigenschaft / INTEGER (Boolean) | — | True | lesen/schreiben | Forms-Referenz: LABEL-Eigenschaften |
|
||||
| `HEIGHT` | Eigenschaft / INTEGER | 1…254 | 1 | lesen/schreiben | Forms-Referenz: LABEL-Eigenschaften |
|
||||
| `LEFT` | Eigenschaft / INTEGER | 0…254 | 0 | lesen/schreiben | Forms-Referenz: LABEL-Eigenschaften |
|
||||
| `MOUSEPOINTER` | Eigenschaft / INTEGER | 0…12 | 0 | lesen/schreiben | Forms-Referenz: LABEL-Eigenschaften |
|
||||
| `PARENT` | Eigenschaft / CONTROL/FORM | — | leer/Objektzustand | read-only | Forms-Referenz: LABEL-Eigenschaften |
|
||||
| `TAG` | Eigenschaft / STRING | — | `` | lesen/schreiben | Forms-Referenz: LABEL-Eigenschaften |
|
||||
| `TOP` | Eigenschaft / INTEGER | 0…254 | 0 | lesen/schreiben | Forms-Referenz: LABEL-Eigenschaften |
|
||||
| `VISIBLE` | Eigenschaft / INTEGER (Boolean) | — | True | lesen/schreiben | Forms-Referenz: LABEL-Eigenschaften |
|
||||
| `WIDTH` | Eigenschaft / INTEGER | 1…254 | 1 | lesen/schreiben | Forms-Referenz: LABEL-Eigenschaften |
|
||||
| `CTLNAME` | Eigenschaft / STRING | — | `` | lesen/schreiben | Forms-Referenz: LABEL-Eigenschaften |
|
||||
| `FORECOLOR` | Eigenschaft / INTEGER | 0…15 | 0 | lesen/schreiben | Forms-Referenz: LABEL-Eigenschaften |
|
||||
| `DRAGMODE` | Eigenschaft / INTEGER | 0…1 | 0 | lesen/schreiben | Forms-Referenz: LABEL-Eigenschaften |
|
||||
| `ALIGNMENT` | Eigenschaft / INTEGER | 0…2 | 0 | lesen/schreiben | Forms-Referenz: LABEL-Eigenschaften |
|
||||
| `AUTOSIZE` | Eigenschaft / INTEGER (Boolean) | — | False | lesen/schreiben | Forms-Referenz: LABEL-Eigenschaften |
|
||||
| `BORDERSTYLE` | Eigenschaft / INTEGER | 0…2 | 0 | lesen/schreiben | Forms-Referenz: LABEL-Eigenschaften |
|
||||
| `CAPTION` | Eigenschaft / STRING | — | `` | lesen/schreiben | Forms-Referenz: LABEL-Eigenschaften |
|
||||
| `DRAG` | Methode | — | — | Aufruf | Forms-Referenz: LABEL-Methoden |
|
||||
| `MOVE` | Methode | — | — | Aufruf | Forms-Referenz: LABEL-Methoden |
|
||||
| `REFRESH` | Methode | — | — | Aufruf | Forms-Referenz: LABEL-Methoden |
|
||||
| `CHANGE` | Ereignis | — | — | Dispatch | Forms-Referenz: LABEL-Ereignisse |
|
||||
| `CLICK` | Ereignis | — | — | Dispatch | Forms-Referenz: LABEL-Ereignisse |
|
||||
| `DBLCLICK` | Ereignis | — | — | Dispatch | Forms-Referenz: LABEL-Ereignisse |
|
||||
| `DRAGDROP` | Ereignis | — | — | Dispatch | Forms-Referenz: LABEL-Ereignisse |
|
||||
| `DRAGOVER` | Ereignis | — | — | Dispatch | Forms-Referenz: LABEL-Ereignisse |
|
||||
| `MOUSEDOWN` | Ereignis | — | — | Dispatch | Forms-Referenz: LABEL-Ereignisse |
|
||||
| `MOUSEMOVE` | Ereignis | — | — | Dispatch | Forms-Referenz: LABEL-Ereignisse |
|
||||
| `MOUSEUP` | Ereignis | — | — | Dispatch | Forms-Referenz: LABEL-Ereignisse |
|
||||
|
||||
## LISTBOX
|
||||
|
||||
| Element | Art/Typ | Bereich | Vorgabe | Laufzeit | Quelle |
|
||||
|---|---|---|---|---|---|
|
||||
| `BACKCOLOR` | Eigenschaft / INTEGER | 0…15 | 7 | lesen/schreiben | Forms-Referenz: LISTBOX-Eigenschaften |
|
||||
| `ENABLED` | Eigenschaft / INTEGER (Boolean) | — | True | lesen/schreiben | Forms-Referenz: LISTBOX-Eigenschaften |
|
||||
| `HEIGHT` | Eigenschaft / INTEGER | 1…254 | 1 | lesen/schreiben | Forms-Referenz: LISTBOX-Eigenschaften |
|
||||
| `LEFT` | Eigenschaft / INTEGER | 0…254 | 0 | lesen/schreiben | Forms-Referenz: LISTBOX-Eigenschaften |
|
||||
| `MOUSEPOINTER` | Eigenschaft / INTEGER | 0…12 | 0 | lesen/schreiben | Forms-Referenz: LISTBOX-Eigenschaften |
|
||||
| `PARENT` | Eigenschaft / CONTROL/FORM | — | leer/Objektzustand | read-only | Forms-Referenz: LISTBOX-Eigenschaften |
|
||||
| `TAG` | Eigenschaft / STRING | — | `` | lesen/schreiben | Forms-Referenz: LISTBOX-Eigenschaften |
|
||||
| `TOP` | Eigenschaft / INTEGER | 0…254 | 0 | lesen/schreiben | Forms-Referenz: LISTBOX-Eigenschaften |
|
||||
| `VISIBLE` | Eigenschaft / INTEGER (Boolean) | — | True | lesen/schreiben | Forms-Referenz: LISTBOX-Eigenschaften |
|
||||
| `WIDTH` | Eigenschaft / INTEGER | 1…254 | 1 | lesen/schreiben | Forms-Referenz: LISTBOX-Eigenschaften |
|
||||
| `INDEX` | Eigenschaft / INTEGER | — | 0 | lesen/schreiben | Forms-Referenz: LISTBOX-Eigenschaften |
|
||||
| `TABINDEX` | Eigenschaft / INTEGER | — | 0 | lesen/schreiben | Forms-Referenz: LISTBOX-Eigenschaften |
|
||||
| `TABSTOP` | Eigenschaft / INTEGER (Boolean) | — | True | lesen/schreiben | Forms-Referenz: LISTBOX-Eigenschaften |
|
||||
| `CTLNAME` | Eigenschaft / STRING | — | `` | lesen/schreiben | Forms-Referenz: LISTBOX-Eigenschaften |
|
||||
| `FORECOLOR` | Eigenschaft / INTEGER | 0…15 | 0 | lesen/schreiben | Forms-Referenz: LISTBOX-Eigenschaften |
|
||||
| `DRAGMODE` | Eigenschaft / INTEGER | 0…1 | 0 | lesen/schreiben | Forms-Referenz: LISTBOX-Eigenschaften |
|
||||
| `LIST` | Eigenschaft / STRING | — | leer/Objektzustand | read-only | Forms-Referenz: LISTBOX-Eigenschaften |
|
||||
| `LISTCOUNT` | Eigenschaft / INTEGER | — | leer/Objektzustand | read-only | Forms-Referenz: LISTBOX-Eigenschaften |
|
||||
| `LISTINDEX` | Eigenschaft / INTEGER | — | -1 | lesen/schreiben | Forms-Referenz: LISTBOX-Eigenschaften |
|
||||
| `SORTED` | Eigenschaft / INTEGER (Boolean) | — | False | lesen/schreiben | Forms-Referenz: LISTBOX-Eigenschaften |
|
||||
| `TEXT` | Eigenschaft / STRING | — | `` | lesen/schreiben | Forms-Referenz: LISTBOX-Eigenschaften |
|
||||
| `ADDITEM` | Methode | — | — | Aufruf | Forms-Referenz: LISTBOX-Methoden |
|
||||
| `DRAG` | Methode | — | — | Aufruf | Forms-Referenz: LISTBOX-Methoden |
|
||||
| `MOVE` | Methode | — | — | Aufruf | Forms-Referenz: LISTBOX-Methoden |
|
||||
| `REFRESH` | Methode | — | — | Aufruf | Forms-Referenz: LISTBOX-Methoden |
|
||||
| `REMOVEITEM` | Methode | — | — | Aufruf | Forms-Referenz: LISTBOX-Methoden |
|
||||
| `SETFOCUS` | Methode | — | — | Aufruf | Forms-Referenz: LISTBOX-Methoden |
|
||||
| `CLICK` | Ereignis | — | — | Dispatch | Forms-Referenz: LISTBOX-Ereignisse |
|
||||
| `DBLCLICK` | Ereignis | — | — | Dispatch | Forms-Referenz: LISTBOX-Ereignisse |
|
||||
| `DRAGDROP` | Ereignis | — | — | Dispatch | Forms-Referenz: LISTBOX-Ereignisse |
|
||||
| `DRAGOVER` | Ereignis | — | — | Dispatch | Forms-Referenz: LISTBOX-Ereignisse |
|
||||
| `GOTFOCUS` | Ereignis | — | — | Dispatch | Forms-Referenz: LISTBOX-Ereignisse |
|
||||
| `KEYDOWN` | Ereignis | — | — | Dispatch | Forms-Referenz: LISTBOX-Ereignisse |
|
||||
| `KEYPRESS` | Ereignis | — | — | Dispatch | Forms-Referenz: LISTBOX-Ereignisse |
|
||||
| `KEYUP` | Ereignis | — | — | Dispatch | Forms-Referenz: LISTBOX-Ereignisse |
|
||||
| `LOSTFOCUS` | Ereignis | — | — | Dispatch | Forms-Referenz: LISTBOX-Ereignisse |
|
||||
| `MOUSEDOWN` | Ereignis | — | — | Dispatch | Forms-Referenz: LISTBOX-Ereignisse |
|
||||
| `MOUSEMOVE` | Ereignis | — | — | Dispatch | Forms-Referenz: LISTBOX-Ereignisse |
|
||||
| `MOUSEUP` | Ereignis | — | — | Dispatch | Forms-Referenz: LISTBOX-Ereignisse |
|
||||
|
||||
## MENU
|
||||
|
||||
| Element | Art/Typ | Bereich | Vorgabe | Laufzeit | Quelle |
|
||||
|---|---|---|---|---|---|
|
||||
| `CAPTION` | Eigenschaft / STRING | — | `` | lesen/schreiben | Forms-Referenz: MENU-Eigenschaften |
|
||||
| `CHECKED` | Eigenschaft / INTEGER (Boolean) | — | False | lesen/schreiben | Forms-Referenz: MENU-Eigenschaften |
|
||||
| `CTLNAME` | Eigenschaft / STRING | — | `` | lesen/schreiben | Forms-Referenz: MENU-Eigenschaften |
|
||||
| `ENABLED` | Eigenschaft / INTEGER (Boolean) | — | True | lesen/schreiben | Forms-Referenz: MENU-Eigenschaften |
|
||||
| `INDEX` | Eigenschaft / INTEGER | — | 0 | lesen/schreiben | Forms-Referenz: MENU-Eigenschaften |
|
||||
| `PARENT` | Eigenschaft / CONTROL/FORM | — | leer/Objektzustand | read-only | Forms-Referenz: MENU-Eigenschaften |
|
||||
| `SEPARATOR` | Eigenschaft / INTEGER (Boolean) | — | False | lesen/schreiben | Forms-Referenz: MENU-Eigenschaften |
|
||||
| `TAG` | Eigenschaft / STRING | — | `` | lesen/schreiben | Forms-Referenz: MENU-Eigenschaften |
|
||||
| `VISIBLE` | Eigenschaft / INTEGER (Boolean) | — | True | lesen/schreiben | Forms-Referenz: MENU-Eigenschaften |
|
||||
| `CLICK` | Ereignis | — | — | Dispatch | Forms-Referenz: MENU-Ereignisse |
|
||||
|
||||
## OPTIONBUTTON
|
||||
|
||||
| Element | Art/Typ | Bereich | Vorgabe | Laufzeit | Quelle |
|
||||
|---|---|---|---|---|---|
|
||||
| `BACKCOLOR` | Eigenschaft / INTEGER | 0…15 | 7 | lesen/schreiben | Forms-Referenz: OPTIONBUTTON-Eigenschaften |
|
||||
| `ENABLED` | Eigenschaft / INTEGER (Boolean) | — | True | lesen/schreiben | Forms-Referenz: OPTIONBUTTON-Eigenschaften |
|
||||
| `HEIGHT` | Eigenschaft / INTEGER | 1…254 | 1 | lesen/schreiben | Forms-Referenz: OPTIONBUTTON-Eigenschaften |
|
||||
| `LEFT` | Eigenschaft / INTEGER | 0…254 | 0 | lesen/schreiben | Forms-Referenz: OPTIONBUTTON-Eigenschaften |
|
||||
| `MOUSEPOINTER` | Eigenschaft / INTEGER | 0…12 | 0 | lesen/schreiben | Forms-Referenz: OPTIONBUTTON-Eigenschaften |
|
||||
| `PARENT` | Eigenschaft / CONTROL/FORM | — | leer/Objektzustand | read-only | Forms-Referenz: OPTIONBUTTON-Eigenschaften |
|
||||
| `TAG` | Eigenschaft / STRING | — | `` | lesen/schreiben | Forms-Referenz: OPTIONBUTTON-Eigenschaften |
|
||||
| `TOP` | Eigenschaft / INTEGER | 0…254 | 0 | lesen/schreiben | Forms-Referenz: OPTIONBUTTON-Eigenschaften |
|
||||
| `VISIBLE` | Eigenschaft / INTEGER (Boolean) | — | True | lesen/schreiben | Forms-Referenz: OPTIONBUTTON-Eigenschaften |
|
||||
| `WIDTH` | Eigenschaft / INTEGER | 1…254 | 1 | lesen/schreiben | Forms-Referenz: OPTIONBUTTON-Eigenschaften |
|
||||
| `INDEX` | Eigenschaft / INTEGER | — | 0 | lesen/schreiben | Forms-Referenz: OPTIONBUTTON-Eigenschaften |
|
||||
| `TABINDEX` | Eigenschaft / INTEGER | — | 0 | lesen/schreiben | Forms-Referenz: OPTIONBUTTON-Eigenschaften |
|
||||
| `TABSTOP` | Eigenschaft / INTEGER (Boolean) | — | True | lesen/schreiben | Forms-Referenz: OPTIONBUTTON-Eigenschaften |
|
||||
| `CTLNAME` | Eigenschaft / STRING | — | `` | lesen/schreiben | Forms-Referenz: OPTIONBUTTON-Eigenschaften |
|
||||
| `FORECOLOR` | Eigenschaft / INTEGER | 0…15 | 0 | lesen/schreiben | Forms-Referenz: OPTIONBUTTON-Eigenschaften |
|
||||
| `DRAGMODE` | Eigenschaft / INTEGER | 0…1 | 0 | lesen/schreiben | Forms-Referenz: OPTIONBUTTON-Eigenschaften |
|
||||
| `CAPTION` | Eigenschaft / STRING | — | `` | lesen/schreiben | Forms-Referenz: OPTIONBUTTON-Eigenschaften |
|
||||
| `VALUE` | Eigenschaft / INTEGER | -1…0 | 0 | lesen/schreiben | Forms-Referenz: OPTIONBUTTON-Eigenschaften |
|
||||
| `DRAG` | Methode | — | — | Aufruf | Forms-Referenz: OPTIONBUTTON-Methoden |
|
||||
| `MOVE` | Methode | — | — | Aufruf | Forms-Referenz: OPTIONBUTTON-Methoden |
|
||||
| `REFRESH` | Methode | — | — | Aufruf | Forms-Referenz: OPTIONBUTTON-Methoden |
|
||||
| `SETFOCUS` | Methode | — | — | Aufruf | Forms-Referenz: OPTIONBUTTON-Methoden |
|
||||
| `CLICK` | Ereignis | — | — | Dispatch | Forms-Referenz: OPTIONBUTTON-Ereignisse |
|
||||
| `DBLCLICK` | Ereignis | — | — | Dispatch | Forms-Referenz: OPTIONBUTTON-Ereignisse |
|
||||
| `DRAGDROP` | Ereignis | — | — | Dispatch | Forms-Referenz: OPTIONBUTTON-Ereignisse |
|
||||
| `DRAGOVER` | Ereignis | — | — | Dispatch | Forms-Referenz: OPTIONBUTTON-Ereignisse |
|
||||
| `GOTFOCUS` | Ereignis | — | — | Dispatch | Forms-Referenz: OPTIONBUTTON-Ereignisse |
|
||||
| `KEYDOWN` | Ereignis | — | — | Dispatch | Forms-Referenz: OPTIONBUTTON-Ereignisse |
|
||||
| `KEYPRESS` | Ereignis | — | — | Dispatch | Forms-Referenz: OPTIONBUTTON-Ereignisse |
|
||||
| `KEYUP` | Ereignis | — | — | Dispatch | Forms-Referenz: OPTIONBUTTON-Ereignisse |
|
||||
| `LOSTFOCUS` | Ereignis | — | — | Dispatch | Forms-Referenz: OPTIONBUTTON-Ereignisse |
|
||||
|
||||
## PICTUREBOX
|
||||
|
||||
| Element | Art/Typ | Bereich | Vorgabe | Laufzeit | Quelle |
|
||||
|---|---|---|---|---|---|
|
||||
| `BACKCOLOR` | Eigenschaft / INTEGER | 0…15 | 7 | lesen/schreiben | Forms-Referenz: PICTUREBOX-Eigenschaften |
|
||||
| `ENABLED` | Eigenschaft / INTEGER (Boolean) | — | True | lesen/schreiben | Forms-Referenz: PICTUREBOX-Eigenschaften |
|
||||
| `HEIGHT` | Eigenschaft / INTEGER | 1…254 | 1 | lesen/schreiben | Forms-Referenz: PICTUREBOX-Eigenschaften |
|
||||
| `LEFT` | Eigenschaft / INTEGER | 0…254 | 0 | lesen/schreiben | Forms-Referenz: PICTUREBOX-Eigenschaften |
|
||||
| `MOUSEPOINTER` | Eigenschaft / INTEGER | 0…12 | 0 | lesen/schreiben | Forms-Referenz: PICTUREBOX-Eigenschaften |
|
||||
| `PARENT` | Eigenschaft / CONTROL/FORM | — | leer/Objektzustand | read-only | Forms-Referenz: PICTUREBOX-Eigenschaften |
|
||||
| `TAG` | Eigenschaft / STRING | — | `` | lesen/schreiben | Forms-Referenz: PICTUREBOX-Eigenschaften |
|
||||
| `TOP` | Eigenschaft / INTEGER | 0…254 | 0 | lesen/schreiben | Forms-Referenz: PICTUREBOX-Eigenschaften |
|
||||
| `VISIBLE` | Eigenschaft / INTEGER (Boolean) | — | True | lesen/schreiben | Forms-Referenz: PICTUREBOX-Eigenschaften |
|
||||
| `WIDTH` | Eigenschaft / INTEGER | 1…254 | 1 | lesen/schreiben | Forms-Referenz: PICTUREBOX-Eigenschaften |
|
||||
| `CTLNAME` | Eigenschaft / STRING | — | `` | lesen/schreiben | Forms-Referenz: PICTUREBOX-Eigenschaften |
|
||||
| `FORECOLOR` | Eigenschaft / INTEGER | 0…15 | 0 | lesen/schreiben | Forms-Referenz: PICTUREBOX-Eigenschaften |
|
||||
| `DRAGMODE` | Eigenschaft / INTEGER | 0…1 | 0 | lesen/schreiben | Forms-Referenz: PICTUREBOX-Eigenschaften |
|
||||
| `AUTOREDRAW` | Eigenschaft / INTEGER (Boolean) | — | False | lesen/schreiben | Forms-Referenz: PICTUREBOX-Eigenschaften |
|
||||
| `BORDERSTYLE` | Eigenschaft / INTEGER | 0…2 | 1 | lesen/schreiben | Forms-Referenz: PICTUREBOX-Eigenschaften |
|
||||
| `CURRENTX` | Eigenschaft / INTEGER | — | 0 | lesen/schreiben | Forms-Referenz: PICTUREBOX-Eigenschaften |
|
||||
| `CURRENTY` | Eigenschaft / INTEGER | — | 0 | lesen/schreiben | Forms-Referenz: PICTUREBOX-Eigenschaften |
|
||||
| `SCALEHEIGHT` | Eigenschaft / INTEGER | — | leer/Objektzustand | read-only | Forms-Referenz: PICTUREBOX-Eigenschaften |
|
||||
| `SCALEWIDTH` | Eigenschaft / INTEGER | — | leer/Objektzustand | read-only | Forms-Referenz: PICTUREBOX-Eigenschaften |
|
||||
| `CLS` | Methode | — | — | Aufruf | Forms-Referenz: PICTUREBOX-Methoden |
|
||||
| `DRAG` | Methode | — | — | Aufruf | Forms-Referenz: PICTUREBOX-Methoden |
|
||||
| `MOVE` | Methode | — | — | Aufruf | Forms-Referenz: PICTUREBOX-Methoden |
|
||||
| `PRINT` | Methode | — | — | Aufruf | Forms-Referenz: PICTUREBOX-Methoden |
|
||||
| `REFRESH` | Methode | — | — | Aufruf | Forms-Referenz: PICTUREBOX-Methoden |
|
||||
| `SETFOCUS` | Methode | — | — | Aufruf | Forms-Referenz: PICTUREBOX-Methoden |
|
||||
| `TEXTHEIGHT` | Methode | — | — | Aufruf | Forms-Referenz: PICTUREBOX-Methoden |
|
||||
| `TEXTWIDTH` | Methode | — | — | Aufruf | Forms-Referenz: PICTUREBOX-Methoden |
|
||||
| `CLICK` | Ereignis | — | — | Dispatch | Forms-Referenz: PICTUREBOX-Ereignisse |
|
||||
| `DBLCLICK` | Ereignis | — | — | Dispatch | Forms-Referenz: PICTUREBOX-Ereignisse |
|
||||
| `DRAGDROP` | Ereignis | — | — | Dispatch | Forms-Referenz: PICTUREBOX-Ereignisse |
|
||||
| `DRAGOVER` | Ereignis | — | — | Dispatch | Forms-Referenz: PICTUREBOX-Ereignisse |
|
||||
| `GOTFOCUS` | Ereignis | — | — | Dispatch | Forms-Referenz: PICTUREBOX-Ereignisse |
|
||||
| `KEYDOWN` | Ereignis | — | — | Dispatch | Forms-Referenz: PICTUREBOX-Ereignisse |
|
||||
| `KEYPRESS` | Ereignis | — | — | Dispatch | Forms-Referenz: PICTUREBOX-Ereignisse |
|
||||
| `KEYUP` | Ereignis | — | — | Dispatch | Forms-Referenz: PICTUREBOX-Ereignisse |
|
||||
| `LOSTFOCUS` | Ereignis | — | — | Dispatch | Forms-Referenz: PICTUREBOX-Ereignisse |
|
||||
| `MOUSEDOWN` | Ereignis | — | — | Dispatch | Forms-Referenz: PICTUREBOX-Ereignisse |
|
||||
| `MOUSEMOVE` | Ereignis | — | — | Dispatch | Forms-Referenz: PICTUREBOX-Ereignisse |
|
||||
| `MOUSEUP` | Ereignis | — | — | Dispatch | Forms-Referenz: PICTUREBOX-Ereignisse |
|
||||
| `PAINT` | Ereignis | — | — | Dispatch | Forms-Referenz: PICTUREBOX-Ereignisse |
|
||||
|
||||
## TEXTBOX
|
||||
|
||||
| Element | Art/Typ | Bereich | Vorgabe | Laufzeit | Quelle |
|
||||
|---|---|---|---|---|---|
|
||||
| `BACKCOLOR` | Eigenschaft / INTEGER | 0…15 | 7 | lesen/schreiben | Forms-Referenz: TEXTBOX-Eigenschaften |
|
||||
| `ENABLED` | Eigenschaft / INTEGER (Boolean) | — | True | lesen/schreiben | Forms-Referenz: TEXTBOX-Eigenschaften |
|
||||
| `HEIGHT` | Eigenschaft / INTEGER | 1…254 | 1 | lesen/schreiben | Forms-Referenz: TEXTBOX-Eigenschaften |
|
||||
| `LEFT` | Eigenschaft / INTEGER | 0…254 | 0 | lesen/schreiben | Forms-Referenz: TEXTBOX-Eigenschaften |
|
||||
| `MOUSEPOINTER` | Eigenschaft / INTEGER | 0…12 | 0 | lesen/schreiben | Forms-Referenz: TEXTBOX-Eigenschaften |
|
||||
| `PARENT` | Eigenschaft / CONTROL/FORM | — | leer/Objektzustand | read-only | Forms-Referenz: TEXTBOX-Eigenschaften |
|
||||
| `TAG` | Eigenschaft / STRING | — | `` | lesen/schreiben | Forms-Referenz: TEXTBOX-Eigenschaften |
|
||||
| `TOP` | Eigenschaft / INTEGER | 0…254 | 0 | lesen/schreiben | Forms-Referenz: TEXTBOX-Eigenschaften |
|
||||
| `VISIBLE` | Eigenschaft / INTEGER (Boolean) | — | True | lesen/schreiben | Forms-Referenz: TEXTBOX-Eigenschaften |
|
||||
| `WIDTH` | Eigenschaft / INTEGER | 1…254 | 1 | lesen/schreiben | Forms-Referenz: TEXTBOX-Eigenschaften |
|
||||
| `INDEX` | Eigenschaft / INTEGER | — | 0 | lesen/schreiben | Forms-Referenz: TEXTBOX-Eigenschaften |
|
||||
| `TABINDEX` | Eigenschaft / INTEGER | — | 0 | lesen/schreiben | Forms-Referenz: TEXTBOX-Eigenschaften |
|
||||
| `TABSTOP` | Eigenschaft / INTEGER (Boolean) | — | True | lesen/schreiben | Forms-Referenz: TEXTBOX-Eigenschaften |
|
||||
| `CTLNAME` | Eigenschaft / STRING | — | `` | lesen/schreiben | Forms-Referenz: TEXTBOX-Eigenschaften |
|
||||
| `FORECOLOR` | Eigenschaft / INTEGER | 0…15 | 0 | lesen/schreiben | Forms-Referenz: TEXTBOX-Eigenschaften |
|
||||
| `DRAGMODE` | Eigenschaft / INTEGER | 0…1 | 0 | lesen/schreiben | Forms-Referenz: TEXTBOX-Eigenschaften |
|
||||
| `BORDERSTYLE` | Eigenschaft / INTEGER | 0…1 | 1 | lesen/schreiben | Forms-Referenz: TEXTBOX-Eigenschaften |
|
||||
| `MULTILINE` | Eigenschaft / INTEGER (Boolean) | — | False | lesen/schreiben | Forms-Referenz: TEXTBOX-Eigenschaften |
|
||||
| `SCROLLBARS` | Eigenschaft / INTEGER | 0…3 | 0 | lesen/schreiben | Forms-Referenz: TEXTBOX-Eigenschaften |
|
||||
| `SELLENGTH` | Eigenschaft / INTEGER | — | 0 | lesen/schreiben | Forms-Referenz: TEXTBOX-Eigenschaften |
|
||||
| `SELSTART` | Eigenschaft / INTEGER | — | 0 | lesen/schreiben | Forms-Referenz: TEXTBOX-Eigenschaften |
|
||||
| `SELTEXT` | Eigenschaft / STRING | — | `` | lesen/schreiben | Forms-Referenz: TEXTBOX-Eigenschaften |
|
||||
| `TEXT` | Eigenschaft / STRING | — | `` | lesen/schreiben | Forms-Referenz: TEXTBOX-Eigenschaften |
|
||||
| `DRAG` | Methode | — | — | Aufruf | Forms-Referenz: TEXTBOX-Methoden |
|
||||
| `MOVE` | Methode | — | — | Aufruf | Forms-Referenz: TEXTBOX-Methoden |
|
||||
| `REFRESH` | Methode | — | — | Aufruf | Forms-Referenz: TEXTBOX-Methoden |
|
||||
| `SETFOCUS` | Methode | — | — | Aufruf | Forms-Referenz: TEXTBOX-Methoden |
|
||||
| `CHANGE` | Ereignis | — | — | Dispatch | Forms-Referenz: TEXTBOX-Ereignisse |
|
||||
| `DRAGDROP` | Ereignis | — | — | Dispatch | Forms-Referenz: TEXTBOX-Ereignisse |
|
||||
| `DRAGOVER` | Ereignis | — | — | Dispatch | Forms-Referenz: TEXTBOX-Ereignisse |
|
||||
| `GOTFOCUS` | Ereignis | — | — | Dispatch | Forms-Referenz: TEXTBOX-Ereignisse |
|
||||
| `KEYDOWN` | Ereignis | — | — | Dispatch | Forms-Referenz: TEXTBOX-Ereignisse |
|
||||
| `KEYPRESS` | Ereignis | — | — | Dispatch | Forms-Referenz: TEXTBOX-Ereignisse |
|
||||
| `KEYUP` | Ereignis | — | — | Dispatch | Forms-Referenz: TEXTBOX-Ereignisse |
|
||||
| `LOSTFOCUS` | Ereignis | — | — | Dispatch | Forms-Referenz: TEXTBOX-Ereignisse |
|
||||
|
||||
## TIMER
|
||||
|
||||
| Element | Art/Typ | Bereich | Vorgabe | Laufzeit | Quelle |
|
||||
|---|---|---|---|---|---|
|
||||
| `CTLNAME` | Eigenschaft / STRING | — | `` | lesen/schreiben | Forms-Referenz: TIMER-Eigenschaften |
|
||||
| `ENABLED` | Eigenschaft / INTEGER (Boolean) | — | True | lesen/schreiben | Forms-Referenz: TIMER-Eigenschaften |
|
||||
| `INDEX` | Eigenschaft / INTEGER | — | 0 | lesen/schreiben | Forms-Referenz: TIMER-Eigenschaften |
|
||||
| `INTERVAL` | Eigenschaft / INTEGER | 0…65535 | 0 | lesen/schreiben | Forms-Referenz: TIMER-Eigenschaften |
|
||||
| `PARENT` | Eigenschaft / CONTROL/FORM | — | leer/Objektzustand | read-only | Forms-Referenz: TIMER-Eigenschaften |
|
||||
| `TAG` | Eigenschaft / STRING | — | `` | lesen/schreiben | Forms-Referenz: TIMER-Eigenschaften |
|
||||
| `TIMER` | Ereignis | — | — | Dispatch | Forms-Referenz: TIMER-Ereignisse |
|
||||
|
||||
## VSCROLLBAR
|
||||
|
||||
| Element | Art/Typ | Bereich | Vorgabe | Laufzeit | Quelle |
|
||||
|---|---|---|---|---|---|
|
||||
| `BACKCOLOR` | Eigenschaft / INTEGER | 0…15 | 7 | lesen/schreiben | Forms-Referenz: VSCROLLBAR-Eigenschaften |
|
||||
| `ENABLED` | Eigenschaft / INTEGER (Boolean) | — | True | lesen/schreiben | Forms-Referenz: VSCROLLBAR-Eigenschaften |
|
||||
| `HEIGHT` | Eigenschaft / INTEGER | 1…254 | 1 | lesen/schreiben | Forms-Referenz: VSCROLLBAR-Eigenschaften |
|
||||
| `LEFT` | Eigenschaft / INTEGER | 0…254 | 0 | lesen/schreiben | Forms-Referenz: VSCROLLBAR-Eigenschaften |
|
||||
| `MOUSEPOINTER` | Eigenschaft / INTEGER | 0…12 | 0 | lesen/schreiben | Forms-Referenz: VSCROLLBAR-Eigenschaften |
|
||||
| `PARENT` | Eigenschaft / CONTROL/FORM | — | leer/Objektzustand | read-only | Forms-Referenz: VSCROLLBAR-Eigenschaften |
|
||||
| `TAG` | Eigenschaft / STRING | — | `` | lesen/schreiben | Forms-Referenz: VSCROLLBAR-Eigenschaften |
|
||||
| `TOP` | Eigenschaft / INTEGER | 0…254 | 0 | lesen/schreiben | Forms-Referenz: VSCROLLBAR-Eigenschaften |
|
||||
| `VISIBLE` | Eigenschaft / INTEGER (Boolean) | — | True | lesen/schreiben | Forms-Referenz: VSCROLLBAR-Eigenschaften |
|
||||
| `WIDTH` | Eigenschaft / INTEGER | 1…254 | 1 | lesen/schreiben | Forms-Referenz: VSCROLLBAR-Eigenschaften |
|
||||
| `INDEX` | Eigenschaft / INTEGER | — | 0 | lesen/schreiben | Forms-Referenz: VSCROLLBAR-Eigenschaften |
|
||||
| `TABINDEX` | Eigenschaft / INTEGER | — | 0 | lesen/schreiben | Forms-Referenz: VSCROLLBAR-Eigenschaften |
|
||||
| `TABSTOP` | Eigenschaft / INTEGER (Boolean) | — | True | lesen/schreiben | Forms-Referenz: VSCROLLBAR-Eigenschaften |
|
||||
| `CTLNAME` | Eigenschaft / STRING | — | `` | lesen/schreiben | Forms-Referenz: VSCROLLBAR-Eigenschaften |
|
||||
| `FORECOLOR` | Eigenschaft / INTEGER | 0…15 | 0 | lesen/schreiben | Forms-Referenz: VSCROLLBAR-Eigenschaften |
|
||||
| `DRAGMODE` | Eigenschaft / INTEGER | 0…1 | 0 | lesen/schreiben | Forms-Referenz: VSCROLLBAR-Eigenschaften |
|
||||
| `ATTACHED` | Eigenschaft / INTEGER (Boolean) | — | leer/Objektzustand | read-only | Forms-Referenz: VSCROLLBAR-Eigenschaften |
|
||||
| `LARGECHANGE` | Eigenschaft / INTEGER | 1…32767 | 1 | lesen/schreiben | Forms-Referenz: VSCROLLBAR-Eigenschaften |
|
||||
| `MIN` | Eigenschaft / INTEGER | -32768…32767 | 0 | lesen/schreiben | Forms-Referenz: VSCROLLBAR-Eigenschaften |
|
||||
| `MAX` | Eigenschaft / INTEGER | -32768…32767 | 32767 | lesen/schreiben | Forms-Referenz: VSCROLLBAR-Eigenschaften |
|
||||
| `SMALLCHANGE` | Eigenschaft / INTEGER | 1…32767 | 1 | lesen/schreiben | Forms-Referenz: VSCROLLBAR-Eigenschaften |
|
||||
| `VALUE` | Eigenschaft / INTEGER | -32768…32767 | 0 | lesen/schreiben | Forms-Referenz: VSCROLLBAR-Eigenschaften |
|
||||
| `DRAG` | Methode | — | — | Aufruf | Forms-Referenz: VSCROLLBAR-Methoden |
|
||||
| `MOVE` | Methode | — | — | Aufruf | Forms-Referenz: VSCROLLBAR-Methoden |
|
||||
| `REFRESH` | Methode | — | — | Aufruf | Forms-Referenz: VSCROLLBAR-Methoden |
|
||||
| `CHANGE` | Ereignis | — | — | Dispatch | Forms-Referenz: VSCROLLBAR-Ereignisse |
|
||||
| `DRAGDROP` | Ereignis | — | — | Dispatch | Forms-Referenz: VSCROLLBAR-Ereignisse |
|
||||
| `DRAGOVER` | Ereignis | — | — | Dispatch | Forms-Referenz: VSCROLLBAR-Ereignisse |
|
||||
| `GOTFOCUS` | Ereignis | — | — | Dispatch | Forms-Referenz: VSCROLLBAR-Ereignisse |
|
||||
| `KEYDOWN` | Ereignis | — | — | Dispatch | Forms-Referenz: VSCROLLBAR-Ereignisse |
|
||||
| `KEYPRESS` | Ereignis | — | — | Dispatch | Forms-Referenz: VSCROLLBAR-Ereignisse |
|
||||
| `KEYUP` | Ereignis | — | — | Dispatch | Forms-Referenz: VSCROLLBAR-Ereignisse |
|
||||
| `LOSTFOCUS` | Ereignis | — | — | Dispatch | Forms-Referenz: VSCROLLBAR-Ereignisse |
|
||||
|
||||
## SCREEN
|
||||
|
||||
| Element | Art/Typ | Bereich | Vorgabe | Laufzeit | Quelle |
|
||||
|---|---|---|---|---|---|
|
||||
| `ACTIVECONTROL` | Eigenschaft / CONTROL/FORM | — | leer/Objektzustand | read-only | Forms-Referenz: SCREEN-Eigenschaften |
|
||||
| `ACTIVEFORM` | Eigenschaft / CONTROL/FORM | — | leer/Objektzustand | read-only | Forms-Referenz: SCREEN-Eigenschaften |
|
||||
| `AUTOREDRAW` | Eigenschaft / INTEGER (Boolean) | — | False | lesen/schreiben | Forms-Referenz: SCREEN-Eigenschaften |
|
||||
| `CONTROLPANEL` | Eigenschaft / INTEGER-Array | 0…15 | 0 | lesen/schreiben | Forms-Referenz: SCREEN-Eigenschaften |
|
||||
| `HEIGHT` | Eigenschaft / INTEGER | — | leer/Objektzustand | read-only | Forms-Referenz: SCREEN-Eigenschaften |
|
||||
| `WIDTH` | Eigenschaft / INTEGER | — | leer/Objektzustand | read-only | Forms-Referenz: SCREEN-Eigenschaften |
|
||||
| `MOUSEPOINTER` | Eigenschaft / INTEGER | 0…12 | 0 | lesen/schreiben | Forms-Referenz: SCREEN-Eigenschaften |
|
||||
| `HIDE` | Methode | — | — | Aufruf | Forms-Referenz: SCREEN-Methoden |
|
||||
| `SHOW` | Methode | — | — | Aufruf | Forms-Referenz: SCREEN-Methoden |
|
||||
@@ -0,0 +1,106 @@
|
||||
# Phase 4 — Formularmodell und Objektsprache
|
||||
|
||||
## Why
|
||||
|
||||
Nach der Ereignisschleife (`phase-4-ereignisschleife`) fehlt der Sprache
|
||||
alles, worauf ein Formularprogramm zugreift: Formulare als Objekte,
|
||||
Steuerelemente als benannte Eigenschaftsträger, Ereignisprozeduren
|
||||
`Name_Ereignis` und die Sprachmittel aus Sprachreferenz §12
|
||||
(`FORM`/`CONTROL`, `IF TYPEOF`, `$FORM`, `form!steuerelement`,
|
||||
`SCREEN`-Objekt).
|
||||
|
||||
Heute kompiliert ein Formularprogramm nicht etwa mit einer Ablehnung,
|
||||
sondern **falsch**. Belegt an einem Dreizeiler:
|
||||
|
||||
```
|
||||
Text1.Text = "hallo" -> Type mismatch (implizite SINGLE-Variable "Text1.Text")
|
||||
Form1.Show 1 -> Subprogram not defined
|
||||
UNLOAD Form1 -> Subprogram not defined
|
||||
```
|
||||
|
||||
Der Lexer faltet den Punkt in den Bezeichner, die Semantik löst Punktpfade
|
||||
nur auf, wenn die Basis ein benutzerdefinierter Typ ist — sonst entsteht
|
||||
stillschweigend eine Variable namens `Text1.Text`. Das ist genau der Fall,
|
||||
den der Guiding Principle als Bug definiert: ein dokumentiertes Element
|
||||
wird ohne Namensnennung abgewiesen. Zusätzlich kollidiert der
|
||||
Container-Operator `form!steuerelement` mit dem Typsuffix `!` für SINGLE.
|
||||
|
||||
Dazu kommt eine Lücke im Messinstrument: das Inventar führt zum
|
||||
Forms-Objektmodell **null** Einträge — weder `SHOW` noch `TYPEOF`, keine
|
||||
Eigenschaft, keine Steuerelementklasse. Es ist Abnahmekriterium für
|
||||
Phase 6 und läuft für den größten Teil der Phase 4 ins Leere.
|
||||
|
||||
## What Changes
|
||||
|
||||
- **Objektsprache im Frontend**: Punktpfade auf Formulare und
|
||||
Steuerelemente (`Form1.Caption`, `Text1.Text`), der Container-Operator
|
||||
`form!steuerelement.eigenschaft` mit einer Auflösung der Kollision zum
|
||||
SINGLE-Suffix, die Datentypen `FORM` und `CONTROL` als Parametertypen,
|
||||
`IF TYPEOF ctl IS klasse`, der Metabefehl `$FORM` und die
|
||||
Ereignisprozeduren `SUB Name_Ereignis (…)` mit den Signaturen der
|
||||
Forms-Referenz.
|
||||
- **Namentliche Abweisung statt Falschübersetzung** (**BREAKING** für
|
||||
bestehende Diagnosen): Ein Punktpfad auf ein unbekanntes Objekt oder
|
||||
eine unbekannte Eigenschaft MUST das Objekt und die Eigenschaft
|
||||
namentlich nennen; eine implizite Variable mit Punkt im Namen MUST NOT
|
||||
mehr entstehen.
|
||||
- **Formularmodell zur Laufzeit**: Formulare mit Eigenschaften,
|
||||
Steuerelementbaum, Steuerelement-Arrays (`ctl(index%)`),
|
||||
Lade-/Entladezyklus (`LOAD`/`UNLOAD` mit `Form_Load`/`Form_Unload` und
|
||||
wirksamem `Cancel`), `SHOW [style%]` modeless und modal, `HIDE`,
|
||||
Sichtbarkeit und Z-Reihenfolge.
|
||||
- **Modalität**: `form.SHOW 1` gibt die Kontrolle erst zurück, wenn das
|
||||
Formular entladen oder verborgen wird; die Ereignisschleife läuft
|
||||
währenddessen weiter. Die Stapelregeln des Vorbilds lösen die Fehler
|
||||
400–403 aus.
|
||||
- **Ereignisdispatch**: Ein Ereignis der Warteschlange findet die
|
||||
Prozedur `Name_Ereignis` des betroffenen Objekts und ruft sie mit den
|
||||
Argumenten ihrer Signatur auf; fehlt die Prozedur, verfällt das
|
||||
Ereignis wirkungslos. Die Zustellpunkte sind die der
|
||||
Ereignissteuerung, nicht neue.
|
||||
- **`SCREEN`-Objekt**: `ActiveControl`, `ActiveForm`, `Height`, `Width`
|
||||
(aktuelle Terminalgröße, Abweichung vom Vorbild), `MousePointer`,
|
||||
`ControlPanel`, `SHOW`/`HIDE`.
|
||||
- **Inventar deckt das Objektmodell** (**BREAKING** für das
|
||||
Inventarformat): Eigenschaften, Methoden und Ereignisse je Klasse
|
||||
werden mit eigener Quellenangabe (Forms-Referenz statt Themenliste der
|
||||
Hilfe) als Einträge geführt, damit die Leitplanke „Vollständigkeit ist
|
||||
das Soll" auch für Forms ein Maß hat.
|
||||
|
||||
**Non-Goals:** Darstellung, Fokus, Tastatur- und Maussteuerung der
|
||||
einzelnen Steuerelemente sowie Menüs und Dialoge (Change
|
||||
`phase-4-steuerelemente`); das `.FRM`-Dateiformat (Change
|
||||
`phase-4-frm`); native Erweiterungssteuerelemente (Stufe 2).
|
||||
|
||||
## Capabilities
|
||||
|
||||
### New Capabilities
|
||||
|
||||
- `forms-objektmodell`: Formulare und Steuerelemente als benannte
|
||||
Objekte mit Eigenschaften, Lade-/Entladezyklus, Sichtbarkeit und
|
||||
Modalität, Steuerelement-Arrays, Ereignisprozeduren und ihr Dispatch,
|
||||
`SCREEN`-Objekt.
|
||||
|
||||
### Modified Capabilities
|
||||
|
||||
- `sprach-frontend`: Grammatik und Semantik SHALL Punktpfade auf Objekte,
|
||||
den Container-Operator, `FORM`/`CONTROL`, `TYPEOF`, `$FORM` und
|
||||
Ereignisprozeduren umfassen; ein Punktpfad MUST NOT mehr zu einer
|
||||
impliziten Variablen mit Punkt im Namen werden.
|
||||
- `sprachinventar`: Das Inventar SHALL neben den Elementen der
|
||||
Original-Hilfe auch das Forms-Objektmodell führen.
|
||||
|
||||
## Impact
|
||||
|
||||
- `crates/tb-frontend`: Lexer (Punkt und `!` im Objektkontext), Parser
|
||||
(`TYPEOF`, `$FORM`, Ereignisprozedur-Signaturen), Semantik
|
||||
(Objektauflösung, Eigenschaftstypen, Ereignisprozedur-Erkennung).
|
||||
- `crates/tb-ui`: Formularmodell, Steuerelementbaum, Lade-/Entladezyklus,
|
||||
Dispatch — der Platzhalter `forms.rs` wird ausgefüllt.
|
||||
- `crates/tb-vm`: Aufruf von Ereignisprozeduren über den Rückrufweg aus
|
||||
`phase-4-ereignisschleife`; Fortsetzungspunkt für modales `SHOW`.
|
||||
- `crates/tb-runtime`: Fehler 362 und 400–403 als Auslöser.
|
||||
- `docs/`: `inventar.md` um das Objektmodell erweitert;
|
||||
`forms-referenz.md` um die belegten Detailfragen ergänzt;
|
||||
`sprachreferenz.md` §12 ausformuliert.
|
||||
- PLAN.md: Punkte „Formular-Modell" und „Ereignisdispatch" der Phase 4.
|
||||
+136
@@ -0,0 +1,136 @@
|
||||
## Purpose
|
||||
|
||||
Das Forms-Objektmodell macht Formulare und Steuerelemente zu benannten
|
||||
Objekten des laufenden Programms: Eigenschaften lesen und schreiben,
|
||||
Formulare laden, zeigen, verbergen und entladen — modal wie nicht-modal —,
|
||||
Steuerelement-Arrays führen und Ereignisse an die Prozeduren
|
||||
`Name_Ereignis` zustellen. Es ist die Grundlage der Steuerelemente und der
|
||||
vordefinierten Dialoge.
|
||||
|
||||
## ADDED Requirements
|
||||
|
||||
### Requirement: Formulare und Steuerelemente als benannte Objekte
|
||||
Ein Formular SHALL unter seinem Namen ansprechbar sein, ein
|
||||
Steuerelement unter seinem Namen innerhalb seines Formulars. Eigenschaften
|
||||
SHALL über `objekt.eigenschaft` gelesen und geschrieben werden, mit dem
|
||||
in der Forms-Referenz festgelegten Typ und Wertebereich. Es SHALL keine
|
||||
Standardeigenschaft geben: `Text1 = "x"` MUST abgewiesen werden. Das
|
||||
Schreiben eines Wertes außerhalb des Wertebereichs MUST Laufzeitfehler 5
|
||||
auslösen; eine zur Laufzeit schreibgeschützte Eigenschaft MUST bei
|
||||
Zuweisung einen Fehler auslösen.
|
||||
|
||||
#### Scenario: Eigenschaft lesen und schreiben
|
||||
- **WHEN** `Text1.Text = "hallo"` ausgeführt und danach `Text1.Text` gelesen wird
|
||||
- **THEN** liefert der Zugriff `hallo`
|
||||
|
||||
#### Scenario: Keine Standardeigenschaft
|
||||
- **WHEN** ein Programm `Text1 = "x"` enthält
|
||||
- **THEN** wird es abgewiesen und die Meldung nennt `Text1`
|
||||
|
||||
#### Scenario: Wert außerhalb des Bereichs
|
||||
- **WHEN** `Check1.Value = 3` ausgeführt wird
|
||||
- **THEN** tritt Laufzeitfehler 5 auf
|
||||
|
||||
### Requirement: Container-Zugriff über den Bang-Operator
|
||||
`form!steuerelement.eigenschaft` SHALL ein Steuerelement eines benannten
|
||||
Formulars ansprechen. Die Schreibweise MUST NOT mit dem Typsuffix `!`
|
||||
für SINGLE verwechselt werden; eine Variable `Form1!` und ein Zugriff
|
||||
`Form1!Text1` MUST unterscheidbar bleiben.
|
||||
|
||||
#### Scenario: Zugriff über den Container
|
||||
- **WHEN** `Form1!Text1.Text = "a"` ausgeführt wird
|
||||
- **THEN** trägt die Eigenschaft `Text` des Steuerelements `Text1` in `Form1` den Wert `a`
|
||||
|
||||
#### Scenario: Typsuffix bleibt Typsuffix
|
||||
- **WHEN** ein Programm die Variable `Wert!` verwendet
|
||||
- **THEN** bleibt sie eine SINGLE-Variable und wird nicht als Containerzugriff gelesen
|
||||
|
||||
### Requirement: Lade- und Entladezyklus
|
||||
`LOAD form` SHALL das Formular anlegen und `Form_Load` ausführen, bevor
|
||||
es sichtbar wird. `UNLOAD form` SHALL `Form_Unload (Cancel)` ausführen;
|
||||
ein von der Prozedur gesetzter Wert `Cancel <> 0` MUST das Entladen
|
||||
verhindern. `HIDE` SHALL nur die Sichtbarkeit zurücknehmen und das
|
||||
Formular geladen lassen. Der Zugriff auf ein nicht geladenes Formular
|
||||
SHALL es implizit laden.
|
||||
|
||||
#### Scenario: Load läuft vor der Anzeige
|
||||
- **WHEN** ein Formular gezeigt wird, dessen `Form_Load` eine Eigenschaft setzt
|
||||
- **THEN** ist der gesetzte Wert bereits in der ersten Anzeige sichtbar
|
||||
|
||||
#### Scenario: Entladen abbrechen
|
||||
- **WHEN** `Form_Unload` den Parameter `Cancel` auf 1 setzt und `UNLOAD Form1` ausgeführt wird
|
||||
- **THEN** bleibt das Formular geladen und sichtbar
|
||||
|
||||
#### Scenario: HIDE entlädt nicht
|
||||
- **WHEN** `Form1.HIDE` ausgeführt und danach eine Eigenschaft von `Form1` gelesen wird
|
||||
- **THEN** ist der zuvor gesetzte Wert erhalten und `Form_Load` läuft nicht erneut
|
||||
|
||||
### Requirement: Modales und nicht-modales Anzeigen
|
||||
`form.SHOW [style%]` SHALL das Formular anzeigen; `style%` 0 (Vorgabe)
|
||||
zeigt es nicht-modal, 1 modal. Bei modaler Anzeige MUST die Anweisung
|
||||
nach `SHOW` erst ausgeführt werden, wenn das Formular entladen oder
|
||||
verborgen wurde; die Ereignisschleife MUST währenddessen weiterlaufen.
|
||||
Verstöße gegen die Stapelregeln des Vorbilds MUST die Fehler 400–403
|
||||
auslösen.
|
||||
|
||||
#### Scenario: Modal hält den Ablauf an
|
||||
- **WHEN** ein Programm `Form1.SHOW 1 : PRINT "danach"` ausführt und ein Ereignis `Form1` entlädt
|
||||
- **THEN** erscheint `danach` erst nach dem Entladen
|
||||
|
||||
#### Scenario: Ereignisse laufen während der Modalität
|
||||
- **WHEN** ein modales Formular angezeigt wird und ein Ereignis eintrifft
|
||||
- **THEN** läuft die zugehörige Ereignisprozedur
|
||||
|
||||
### Requirement: Steuerelement-Arrays
|
||||
Steuerelemente mit gleichem Namen und `Index` SHALL als Array
|
||||
ansprechbar sein. `LOAD ctl(index%)` SHALL ein weiteres Element zur
|
||||
Laufzeit anlegen, `UNLOAD ctl(index%)` es entfernen. Der Versuch, ein zur
|
||||
Entwurfszeit angelegtes Element zu entladen, MUST Fehler 362 auslösen.
|
||||
Bei einem Array MUST `Index AS INTEGER` als erster Parameter der
|
||||
Ereignisprozedur übergeben werden.
|
||||
|
||||
#### Scenario: Element zur Laufzeit anlegen
|
||||
- **WHEN** `LOAD Command1(3)` ausgeführt wird
|
||||
- **THEN** existiert `Command1(3)` mit den Eigenschaften des Elements 0 als Vorlage
|
||||
|
||||
#### Scenario: Entwurfszeit-Element ist nicht entladbar
|
||||
- **WHEN** `UNLOAD Command1(0)` für ein zur Entwurfszeit angelegtes Element ausgeführt wird
|
||||
- **THEN** tritt Fehler 362 auf
|
||||
|
||||
#### Scenario: Index als erster Parameter
|
||||
- **WHEN** ein Klick auf `Command1(3)` zugestellt wird
|
||||
- **THEN** wird `Command1_Click` mit `Index = 3` aufgerufen
|
||||
|
||||
### Requirement: Ereignisdispatch an Name_Ereignis
|
||||
Ein Ereignis SHALL die Prozedur `Name_Ereignis` des betroffenen Objekts
|
||||
aufrufen und ihr die Argumente der in der Forms-Referenz festgelegten
|
||||
Signatur übergeben. Fehlt die Prozedur, MUST das Ereignis wirkungslos
|
||||
verfallen, ohne Fehler. Die Zustellung SHALL an den Zustellpunkten der
|
||||
Ereignissteuerung erfolgen; es MUST NOT neue Zustellpunkte geben.
|
||||
|
||||
#### Scenario: Ereignisprozedur wird gerufen
|
||||
- **WHEN** ein Klick auf `Command1` zugestellt wird und `SUB Command1_Click` existiert
|
||||
- **THEN** läuft die Prozedur genau einmal
|
||||
|
||||
#### Scenario: Fehlende Ereignisprozedur
|
||||
- **WHEN** ein Klick auf ein Steuerelement ohne passende Prozedur zugestellt wird
|
||||
- **THEN** läuft das Programm unverändert weiter und es entsteht kein Fehler
|
||||
|
||||
#### Scenario: Signatur mit Mausargumenten
|
||||
- **WHEN** `Form_MouseDown` definiert ist und ein Mausereignis in Zeile 5, Spalte 7 zugestellt wird
|
||||
- **THEN** erhält die Prozedur Taste, Umschaltzustand und die Position in Zellen
|
||||
|
||||
### Requirement: SCREEN-Objekt
|
||||
`SCREEN` SHALL als Objekt ansprechbar sein mit `ActiveControl`,
|
||||
`ActiveForm`, `Height`, `Width`, `MousePointer` und `ControlPanel` sowie
|
||||
den Methoden `SHOW` und `HIDE`. `Height` und `Width` SHALL die
|
||||
**aktuelle** Terminalgröße in Zeichen liefern und schreibgeschützt sein;
|
||||
die feste Größe des Vorbilds MUST als Abweichung dokumentiert sein.
|
||||
|
||||
#### Scenario: Größe folgt dem Terminal
|
||||
- **WHEN** die Darstellungsfläche 120×40 misst und `SCREEN.Width` gelesen wird
|
||||
- **THEN** liefert es 120
|
||||
|
||||
#### Scenario: Aktives Formular
|
||||
- **WHEN** zwei Formulare geladen sind und eines den Fokus hat
|
||||
- **THEN** liefert `SCREEN.ActiveForm` dieses Formular
|
||||
+53
@@ -0,0 +1,53 @@
|
||||
## ADDED Requirements
|
||||
|
||||
### Requirement: Objektzugriffe in Grammatik und Semantik
|
||||
Der Parser SHALL Punktpfade auf Formulare und Steuerelemente
|
||||
(`objekt.eigenschaft`), den Container-Operator
|
||||
`form!steuerelement[.eigenschaft]`, `IF TYPEOF ausdruck IS klasse`, den
|
||||
Metabefehl `$FORM` und die Datentypen `FORM` und `CONTROL` als
|
||||
Parametertypen erkennen. Die Semantik SHALL Eigenschaften gegen die
|
||||
Klasse des Objekts prüfen und ihren Typ bestimmen. Ein Punktpfad, dessen
|
||||
Basis weder ein benutzerdefinierter Typ noch ein bekanntes Objekt ist,
|
||||
MUST eine Diagnose erzeugen, die Basis und Eigenschaft namentlich nennt;
|
||||
er MUST NOT zu einer impliziten Variablen mit Punkt im Namen werden.
|
||||
|
||||
#### Scenario: Unbekanntes Objekt wird benannt
|
||||
- **WHEN** ein Modul `Text9.Text = "a"` ohne Steuerelement `Text9` enthält
|
||||
- **THEN** nennt die Diagnose `Text9` als unbekanntes Objekt statt „Type mismatch" zu melden
|
||||
|
||||
#### Scenario: Unbekannte Eigenschaft wird benannt
|
||||
- **WHEN** ein Modul `Text1.Farbe = 3` enthält
|
||||
- **THEN** nennt die Diagnose `Farbe` als unbekannte Eigenschaft von `TextBox`
|
||||
|
||||
#### Scenario: Eigenschaftstyp wird geprüft
|
||||
- **WHEN** ein Modul `Text1.Text = 5` enthält
|
||||
- **THEN** meldet die Semantik einen Typkonflikt mit Nennung der Eigenschaft
|
||||
|
||||
#### Scenario: TYPEOF
|
||||
- **WHEN** ein Modul `IF TYPEOF Ziel IS CommandButton THEN` enthält
|
||||
- **THEN** wird es übersetzt und die Klasse gegen die bekannten Steuerelementklassen geprüft
|
||||
|
||||
### Requirement: Bang-Operator neben dem SINGLE-Suffix
|
||||
Der Lexer SHALL `!` als Container-Operator erkennen, wenn ihm ein
|
||||
Bezeichner folgt, und andernfalls als Typsuffix für SINGLE. Beide Formen
|
||||
MUST im selben Modul nebeneinander verwendbar sein.
|
||||
|
||||
#### Scenario: Beide Bedeutungen im selben Modul
|
||||
- **WHEN** ein Modul `Wert! = 1.5` und `Form1!Text1.Text = "a"` enthält
|
||||
- **THEN** wird die erste Zeile als SINGLE-Variable und die zweite als Containerzugriff übersetzt
|
||||
|
||||
### Requirement: Ereignisprozeduren mit festen Signaturen
|
||||
Die Semantik SHALL eine `SUB`, deren Name der Form `Objekt_Ereignis`
|
||||
entspricht und deren Objekt bekannt ist, als Ereignisprozedur erkennen
|
||||
und ihre Parameterliste gegen die Signatur der Forms-Referenz prüfen.
|
||||
Eine abweichende Parameterliste MUST namentlich gemeldet werden. Eine
|
||||
`SUB` mit Unterstrich im Namen ohne bekanntes Objekt MUST weiterhin eine
|
||||
gewöhnliche Prozedur sein.
|
||||
|
||||
#### Scenario: Falsche Signatur
|
||||
- **WHEN** ein Modul `SUB Form_MouseDown (X AS SINGLE)` enthält
|
||||
- **THEN** nennt die Diagnose die erwartete Parameterliste der Ereignisprozedur
|
||||
|
||||
#### Scenario: Gewöhnliche SUB mit Unterstrich
|
||||
- **WHEN** ein Modul `SUB Zins_Berechnen (n AS INTEGER)` ohne Objekt `Zins` enthält
|
||||
- **THEN** wird sie als gewöhnliche Prozedur übersetzt
|
||||
@@ -0,0 +1,29 @@
|
||||
## MODIFIED Requirements
|
||||
|
||||
### Requirement: Vollständiges Inventar der Original-Hilfe
|
||||
`docs/inventar.md` SHALL jede in der Original-Hilfe des Vorbilds
|
||||
dokumentierte Anweisung, Funktion, Metabefehl, Operator-Schlüsselwort und
|
||||
Klausel als eigenen Eintrag führen. Darüber hinaus SHALL es das
|
||||
**Forms-Objektmodell** führen: je Klasse ihre Eigenschaften, Methoden und
|
||||
Ereignisse als eigene Einträge. Ein dokumentiertes Element MUST NOT
|
||||
fehlen; Vollständigkeit gegenüber der Quelle geht der Kürze vor. Jeder
|
||||
Eintrag SHALL Name, Art (Anweisung/Funktion/Metabefehl/Eigenschaft/
|
||||
Methode/Ereignis), Themengruppe, Status, Fundstelle und Quelle tragen.
|
||||
Für Einträge des Objektmodells SHALL die Quelle die Forms-Referenz sein,
|
||||
weil die Themenliste der Original-Hilfe sie nicht führt.
|
||||
|
||||
#### Scenario: Dokumentiertes Element ist erfasst
|
||||
- **WHEN** die Original-Hilfe die Anweisung `VIEW PRINT` dokumentiert
|
||||
- **THEN** enthält das Inventar einen Eintrag `VIEW PRINT` mit Art, Gruppe, Status und Fundstelle
|
||||
|
||||
#### Scenario: Non-Feature ist erfasst, nicht weggelassen
|
||||
- **WHEN** `PEEK` als Non-Feature deklariert ist
|
||||
- **THEN** steht `PEEK` mit Status `Non-Feature` im Inventar und die Fundstelle verweist auf den Abschnitt „Abweichungen" der Sprachreferenz
|
||||
|
||||
#### Scenario: Eigenschaft einer Steuerelementklasse ist erfasst
|
||||
- **WHEN** die Forms-Referenz für `TextBox` die Eigenschaft `SelStart` führt
|
||||
- **THEN** enthält das Inventar einen Eintrag für `TextBox.SelStart` mit Art `Eigenschaft`, Status und Quelle Forms-Referenz
|
||||
|
||||
#### Scenario: Ereignis einer Klasse ist erfasst
|
||||
- **WHEN** die Forms-Referenz für `Form` das Ereignis `Resize` führt
|
||||
- **THEN** enthält das Inventar einen Eintrag für `Form_Resize` mit Art `Ereignis`
|
||||
@@ -0,0 +1,42 @@
|
||||
## 1. Belege
|
||||
|
||||
- [x] 1.1 Eigenschaften, Methoden und Ereignisse je Klasse aus Original-Hilfe, `CONSTANT.BI` und den Beispielprojekten in `klassen-und-eigenschaften.md` dieses Changes zusammenstellen (Typ, Wertebereich, Vorgabewert, Schreibbarkeit zur Laufzeit); verifiziert durch die Datei mit Quellenangabe je Zeile
|
||||
- [x] 1.2 Signaturen der Ereignisprozeduren und die Regeln für Steuerelement-Arrays belegen; verifiziert durch einen Abschnitt in derselben Datei, der jede Signatur der Forms-Referenz gegenüberstellt
|
||||
|
||||
## 2. Frontend: Objektsprache
|
||||
|
||||
- [x] 2.1 `!` am folgenden Token entscheiden (D3); verifiziert durch Lexer-Tests für beide Bedeutungen im selben Modul
|
||||
- [x] 2.2 Punktpfade in der Semantik nach D2 auflösen, mit Diagnose statt impliziter Variablen; verifiziert durch Sema-Tests für unbekanntes Objekt, unbekannte Eigenschaft und unveränderten UDT-Feldzugriff
|
||||
- [x] 2.3 Eigenschaftstabelle je Klasse aus 1.1 im Frontend führen und Typ/Schreibbarkeit prüfen; verifiziert durch Sema-Tests für Typkonflikt und schreibgeschützte Eigenschaft
|
||||
- [x] 2.4 `IF TYPEOF … IS klasse`, Datentypen `FORM`/`CONTROL` als Parametertypen, Metabefehl `$FORM`; verifiziert durch Parser- und Sema-Tests je Konstrukt
|
||||
- [x] 2.5 Ereignisprozeduren erkennen und ihre Parameterlisten prüfen; verifiziert durch Sema-Tests für richtige Signatur, falsche Signatur und gewöhnliche `SUB` mit Unterstrich
|
||||
- [x] 2.6 Absenkung ins HIR: Objektzugriff als Objekt-/Eigenschaftsindex, Ereignisprozeduren mit ihrer Zuordnung; verifiziert durch `cargo test -p tb-frontend`
|
||||
|
||||
## 3. Laufzeit: Formularmodell
|
||||
|
||||
- [x] 3.1 Formular- und Steuerelementobjekte mit Eigenschaftsspeicher und Vorgabewerten aus 1.1; verifiziert durch Unit-Tests für Vorgabewerte und Wertebereichsprüfung (Fehler 5)
|
||||
- [x] 3.2 Lade-/Entladezyklus mit `Form_Load` und `Form_Unload (Cancel)`; verifiziert durch Unit-Tests, darunter das verhinderte Entladen
|
||||
- [x] 3.3 `SHOW`/`HIDE`, Sichtbarkeit, implizites Laden beim Zugriff; verifiziert durch Unit-Tests für „HIDE entlädt nicht" und implizites Laden
|
||||
- [x] 3.4 Steuerelement-Arrays: `LOAD ctl(i)`, `UNLOAD ctl(i)`, Fehler 362 für Entwurfszeit-Elemente; verifiziert durch Unit-Tests je Fall
|
||||
- [x] 3.5 `SCREEN`-Objekt mit `ActiveForm`, `ActiveControl`, `Height`/`Width` aus der aktuellen Terminalgröße; verifiziert durch Unit-Tests, darunter einer nach Größenänderung
|
||||
|
||||
## 4. Modalität und Dispatch
|
||||
|
||||
- [x] 4.1 Modales `SHOW` als Frame-Marke (D4) mit Fortsetzung nach dem Entladen; verifiziert durch einen VM-Test, der die Anweisung nach `SHOW 1` erst nach dem Entladen ausführt
|
||||
- [x] 4.2 Stapelregeln der Modalität mit den Fehlern 400–403; verifiziert durch Unit-Tests je Fehlercode
|
||||
- [x] 4.3 Ereignisdispatch: Ereignis der Warteschlange auf `Name_Ereignis` abbilden und mit Argumenten aufrufen (D5); verifiziert durch VM-Tests für vorhandene und fehlende Prozedur
|
||||
- [x] 4.4 Mausereignisse aus `phase-4-ereignisschleife` an die Formularereignisse übergeben (Taste, Umschaltzustand, Position in Zellen); verifiziert durch einen Test, der `Form_MouseDown` mit den erwarteten Argumenten sieht
|
||||
- [x] 4.5 Nachweis, dass keine neuen Zustellpunkte entstehen; verifiziert durch einen Test, der die Zustellpunkte der Ereignissteuerung gegenprüft
|
||||
|
||||
## 5. Inventar und Dokumentation
|
||||
|
||||
- [x] 5.1 `docs/inventar.md` um Art `Eigenschaft`/`Methode`/`Ereignis` und die Spalte Quelle erweitern, Einträge aus 1.1 eintragen (Status zunächst `offen`); verifiziert durch `inventar_stimmt_mit_code_ueberein`
|
||||
- [x] 5.2 Abgleichstest auf die neuen Arten ausdehnen; verifiziert durch einen Testfall, der eine falsch gesetzte Eigenschaft im Inventar erkennt
|
||||
- [x] 5.3 Einträge dieses Changes auf `implementiert` setzen; verifiziert durch denselben Test
|
||||
- [x] 5.4 `docs/sprachreferenz.md` §12 ausformulieren und `docs/forms-referenz.md` um die Belege aus 1.1 ergänzen; verifiziert durch die Abschnitte
|
||||
- [x] 5.5 PLAN.md: Punkte „Formular-Modell" und „Ereignisdispatch" abhaken; verifiziert durch die aktualisierte Liste
|
||||
|
||||
## 6. Abnahme
|
||||
|
||||
- [x] 6.1 Der Dreizeiler aus proposal.md wird namentlich abgewiesen statt falsch übersetzt; verifiziert durch einen Test, der die drei Diagnosen prüft
|
||||
- [x] 6.2 `cargo test` grün und `openspec validate phase-4-objektmodell --strict` ohne Befund; verifiziert durch beide Kommandos
|
||||
Reference in new issue
Block a user