Phase 4: Steuerelemente implementieren
This commit is contained in:
@@ -24,7 +24,7 @@ Maus-Koordinaten in Ereignissen sind SINGLE, aber in Zellen.
|
||||
## Steuerelemente (exakte Klassennamen)
|
||||
|
||||
`CheckBox, ComboBox, CommandButton, DirListBox, DriveListBox, FileListBox,
|
||||
Frame, HScrollBar, Label, ListBox, Menu, OptionButton, PictureBox, TextBox,
|
||||
Frame, HScrollBar, Label, ListBox, Menu, OptionButton, PictureBox, Spin, TextBox,
|
||||
Timer, VScrollBar` — alle außer `Menu` über die Toolbox platzierbar
|
||||
(Menüs entstehen im Menu Design Window). Default-Namen: `Check1`, `Combo1`,
|
||||
`Command1`, `Dir1`, `Drive1`, `File1`, `Frame1`, `HScroll1`, `Label1`,
|
||||
@@ -83,6 +83,11 @@ LostFocus (**kein** separates Scroll-Ereignis). Eigenschaften: zusätzlich
|
||||
Attached (VBDOS-Spezifikum: am Formularrand angedockt; Laufzeit read-only),
|
||||
LargeChange, Min, Max, SmallChange, Value.
|
||||
|
||||
**Spin** — Ereignisse: Custom(EventType), Drag*, GotFocus, Key*, LostFocus.
|
||||
`Style` wählt vertikal/horizontal, `Interval` steuert die Wiederholung; `Value`
|
||||
läuft zyklisch zwischen `Min` und `Max`. `BorderStyle`, `Width` und `Height`
|
||||
sind zur Laufzeit schreibgeschützt.
|
||||
|
||||
**PictureBox** — Text-Zeichenfläche (PRINT/CLS aufs Control) und Container
|
||||
für OptionButton-Gruppen. Ereignisse: Click, DblClick, Drag*, GotFocus,
|
||||
Key*, LostFocus, Mouse*, Paint. Methoden: CLS, DRAG, MOVE, PRINT, REFRESH,
|
||||
@@ -93,7 +98,7 @@ TabStop, AutoRedraw, CurrentX, CurrentY, ScaleHeight, ScaleWidth.
|
||||
Index, Interval (0 = aus … 65 535 ms), Parent, Tag.
|
||||
|
||||
**Menu** — Ereignis Click; Eigenschaften Caption, Checked, CtlName, Enabled,
|
||||
Index, Parent, Separator, Tag, Visible (Shortcut nur zur Entwurfszeit).
|
||||
Index, Parent, Separator, Shortcut, Tag, Visible.
|
||||
|
||||
**DirListBox/DriveListBox/FileListBox** — Datei-Browser-Controls
|
||||
(Path/Drive/FileName/Pattern/Archive/Hidden/Normal/ReadOnly/System;
|
||||
@@ -124,6 +129,61 @@ sie plattformneutral nach (Laufwerksliste → Wurzeln/Mounts).
|
||||
| Text (TextBox/ComboBox) | — | Entwurfszeit = CtlName |
|
||||
| ListIndex | −1 = keine Auswahl | −1 |
|
||||
|
||||
## Zeichenbilder und Zustände
|
||||
|
||||
Die Originalquellen belegen Aufbau und Rahmenformen, enthalten aber keine
|
||||
vollständige Screenshot-Reihe für jede Klasse und jeden Zustand. Die folgende
|
||||
einheitliche Umsetzung ist deshalb **unsere Festlegung**: normal = die Werte
|
||||
aus `ForeColor`/`BackColor`, fokussiert = Farbe 15 auf 1, deaktiviert = Farbe
|
||||
8 auf 0. `&` kennzeichnet
|
||||
nur den Access-Key und wird nicht ausgegeben. Die Beispiele zeigen jeweils
|
||||
normal · fokussiert · deaktiviert; Inhalt wird auf die verfügbare Breite
|
||||
gekürzt und der Rest mit Leerzeichen gefüllt.
|
||||
|
||||
| Klasse | normal | fokussiert | deaktiviert |
|
||||
|---|---|---|---|
|
||||
| CommandButton, Höhe 1 | `<OK>` | `<OK>` | `<OK>` |
|
||||
| CommandButton, Höhe 2 | `┌OK──┐` / `└────┘` | ebenso | ebenso |
|
||||
| CommandButton, Höhe ≥ 3 | `┌────┐` / `│ OK │` / `└────┘` | ebenso | ebenso |
|
||||
| Label | `Text` | `Text` | `Text` |
|
||||
| Frame | `┌ Titel ─┐` / `│ │` / `└────────┘` | ebenso | ebenso |
|
||||
| CheckBox | `[ ] Text` | `[ ] Text` | `[ ] Text` |
|
||||
| CheckBox, gewählt/grau | `[x] Text` / `[-] Text` | ebenso | ebenso |
|
||||
| OptionButton | `( ) Text` | `( ) Text` | `( ) Text` |
|
||||
| OptionButton, gewählt | `(•) Text` | `(•) Text` | `(•) Text` |
|
||||
| TextBox | `┌──────┐` / `│Text │` / `└──────┘` | ebenso, Cursor an `SelStart` | ebenso, ohne Cursor |
|
||||
| ListBox | `┌──────┐` / `│eins │` / `│zwei │` / `└──────┘` | ebenso, aktuelle Zeile in Fokusfarben | ebenso |
|
||||
| ComboBox, Dropdown | `[Text ▼]` | ebenso in Fokusfarben | ebenso |
|
||||
| ComboBox, Simple | `[Text ▼]` / `┌──────┐` / `│eins │` / `└──────┘` | ebenso in Fokusfarben | ebenso |
|
||||
| HScrollBar | `◄──□──►` | ebenso in Fokusfarben | ebenso |
|
||||
| VScrollBar | `▲` / `│` / `□` / `│` / `▼` | ebenso in Fokusfarben | ebenso |
|
||||
| Spin | `▲` / `▼` oder `◄ ►` | ebenso in Fokusfarben | ebenso |
|
||||
| PictureBox | `┌──────┐` / `│Text │` / `└──────┘` | ebenso in Fokusfarben | ebenso |
|
||||
| DirListBox | `┌──────┐` / `│[dir] │` / `└──────┘` | ebenso, aktuelle Zeile in Fokusfarben | ebenso |
|
||||
| DriveListBox | `[ / ▼]` | ebenso in Fokusfarben | ebenso |
|
||||
| FileListBox | `┌──────┐` / `│a.bas │` / `└──────┘` | ebenso, aktuelle Zeile in Fokusfarben | ebenso |
|
||||
| Menu | ` Datei Bearbeiten ` | gewählter Titel/Eintrag in Fokusfarben | Text in Farbe 8 |
|
||||
| Timer | keine sichtbaren Zellen | keine sichtbaren Zellen | keine sichtbaren Zellen |
|
||||
|
||||
`BorderStyle = 0` unterdrückt den Rahmen von Label, TextBox und PictureBox;
|
||||
`BorderStyle = 2` nutzt `╔═╗║╚╝`. Scrollbars erscheinen nur in den von
|
||||
`ScrollBars` genannten Richtungen. Ein unsichtbares Steuerelement zeichnet
|
||||
keine Zelle.
|
||||
|
||||
## Festgelegte Reihenfolgen
|
||||
|
||||
Die folgenden Regeln sind **unsere Festlegung**, nicht nachgewiesenes
|
||||
Referenzverhalten:
|
||||
|
||||
- **Z-Reihenfolge:** Erzeugungsreihenfolge; später erzeugte Elemente liegen
|
||||
oben. Bei Steuerelement-Arrays entscheidet bei sonst gleicher Position der
|
||||
aufsteigende Index, sodass der höchste Index oben liegt. Gezeichnet wird von
|
||||
unten nach oben, die Trefferprüfung läuft umgekehrt.
|
||||
- **Timer-Reihenfolge:** Sind mehrere Timer am selben Zustellpunkt fällig,
|
||||
werden ihre Ereignisse in aufsteigender, ASCII-unabhängig
|
||||
großgeschriebener `CtlName`-Reihenfolge zugestellt. Mehrere verstrichene
|
||||
Intervalle desselben Timers bleiben in zeitlicher Reihenfolge davor.
|
||||
|
||||
**Keine Default-Eigenschaften:** `Text1 = "x"` gibt es nicht — Zugriff
|
||||
immer explizit (`Text1.Text`). „Default" ist nur die CommandButton-
|
||||
Eigenschaft (Enter-Taste); „Cancel" analog für Esc.
|
||||
@@ -188,8 +248,4 @@ Menü-Steuerelement-Arrays sind möglich.
|
||||
|
||||
## Offene Detailfragen
|
||||
|
||||
- Exakte Optik je Steuerelement-Zustand (normal/fokussiert/deaktiviert):
|
||||
aus den Original-Screenshots ableiten (Phase 4)
|
||||
- Z-Reihenfolge/Überlappung: Verhalten bei überlappenden Controls
|
||||
- Timer-Reihenfolge bei mehreren gleichzeitig fälligen Timern
|
||||
- `.FRM`-Textformat: exakte Serialisierung (siehe dateiformate.md)
|
||||
|
||||
Reference in New Issue
Block a user