Forms-Zustand und Darstellung korrigieren und Change archivieren
This commit is contained in:
@@ -64,6 +64,19 @@ Parent, Sorted, TabIndex, TabStop, Tag, Text, Top, Visible, Width.
|
||||
**ComboBox** — wie ListBox plus Change, DropDown (Ereignisse), SelLength/
|
||||
SelStart/SelText/Style/Text (Eigenschaften).
|
||||
|
||||
`ListIndex = -1` hebt die Auswahl auch bei leerer Liste auf. ADDITEM vor dem
|
||||
ausgewählten Eintrag verschiebt seinen Index nach rechts, REMOVEITEM davor
|
||||
nach links; Entfernen des ausgewählten Eintrags setzt ihn auf −1. Das gilt
|
||||
auch für sortierte Listen. `ListCount` und `List(i)` spiegeln die geänderte
|
||||
Liste unmittelbar wider. Ohne Auswahl liefern ListBox und ComboBox.Style 2
|
||||
leeren Text. Die editierbaren ComboBox-Stile 0 und 1 erhalten ihren separaten
|
||||
Eingabetext; ihre Anzeige entspricht auch ohne Auswahl diesem Text.
|
||||
Nachträgliches `Sorted = -1` sortiert den vorhandenen Inhalt ohne Beachtung
|
||||
der Groß-/Kleinschreibung. Gleich sortierte Einträge behalten ihre relative
|
||||
Reihenfolge; die Auswahl bleibt beim selben Eintrag, auch bei Duplikaten.
|
||||
Die Simple-ComboBox zeigt unter dem Eingabefeld ihre Listeneinträge samt
|
||||
Auswahlmarkierung; Inhalt wird auf den verfügbaren Listenbereich begrenzt.
|
||||
|
||||
**CheckBox / OptionButton** — Ereignisse: Click (Option auch DblClick),
|
||||
Drag*, GotFocus, Key*, LostFocus. Methoden: DRAG, MOVE, REFRESH, SETFOCUS.
|
||||
Eigenschaften: BackColor, Caption, CtlName, DragMode, Enabled, ForeColor,
|
||||
@@ -97,6 +110,21 @@ TabStop, AutoRedraw, CurrentX, CurrentY, ScaleHeight, ScaleWidth.
|
||||
**Timer** — Ereignis Timer, keine Methoden; Eigenschaften: CtlName, Enabled,
|
||||
Index, Interval (0 = aus … 65 535 ms), Parent, Tag.
|
||||
|
||||
Die erste Frist beginnt mit der Aktivierung auf einem sichtbaren Formular
|
||||
oder dem Zuweisen eines positiven Intervalls an der aktuellen Hostzeit.
|
||||
Erneutes Zuweisen von Enabled = −1 an einen bereits aktiven Timer verändert
|
||||
die Frist nicht. Intervalländerungen beginnen eine neue Phase und verwerfen
|
||||
alte wartende Timerereignisse; Enabled = 0 und Interval = 0 verwerfen sie
|
||||
ebenfalls. Verstecken/Entladen beendet die aktive Phase. Ein durchgehend
|
||||
aktiver 100-ms-Timer erzeugt bei einem Fortschritt um 250 ms zwei Ereignisse.
|
||||
Zeiten vor Aktivierung oder während einer inaktiven Phase werden nicht nachgeholt.
|
||||
|
||||
Einbetter, die das Forms-Modell direkt verändern, rufen nach der Änderung
|
||||
`sync_timers(|| host.jetzt_ms())` auf. Die Closure wird ausschließlich bei
|
||||
neu beginnenden aktiven Timern ausgewertet. Die VM erledigt dies nach
|
||||
Property-Zuweisungen, SHOW und dem Laden von Arrayelementen sowie beim
|
||||
Übernehmen eines vorbereiteten Modells; es gibt keinen globalen Zeitcache.
|
||||
|
||||
**Menu** — Ereignis Click; Eigenschaften Caption, Checked, CtlName, Enabled,
|
||||
Index, Parent, Separator, Shortcut, Tag, Visible.
|
||||
|
||||
@@ -140,6 +168,13 @@ 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.
|
||||
|
||||
Listenrahmen bleiben auch bei Width = 1 oder Height = 1 innerhalb des
|
||||
Steuerelements; nicht passende Rahmenstücke und Zeilen entfallen.
|
||||
Die Kürzung von Listen- und Combo-Inhalten zählt Bildschirmzellen: breite
|
||||
Unicode-Zeichen werden nur vollständig ausgegeben, Steuerzeichen als
|
||||
Leerzeichen dargestellt. Am Bildschirmrand wird die Forms-Ausgabe ohne
|
||||
Umbruch oder Scrollen abgeschnitten.
|
||||
|
||||
| Klasse | normal | fokussiert | deaktiviert |
|
||||
|---|---|---|---|
|
||||
| CommandButton, Höhe 1 | `<OK>` | `<OK>` | `<OK>` |
|
||||
@@ -182,7 +217,13 @@ Referenzverhalten:
|
||||
- **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.
|
||||
Intervalle desselben Timers bleiben in zeitlicher Reihenfolge davor. Bei
|
||||
gleichem Arraynamen folgt der aufsteigende numerische Index.
|
||||
|
||||
Die Korpusfälle `listenauswahl.frm` und `timer-aktivierung.frm` prüfen diese
|
||||
Verträge mit festgelegten Sollausgaben: Listenauswahl/Combo-Eingabetext und
|
||||
späte Timeraktivierung bei 1000 ms mit erster Zustellung bei 1100 ms.
|
||||
Dies sind Vertragsregressionen, keine neu aufgenommenen VBDOS-Referenzläufe.
|
||||
|
||||
**Keine Default-Eigenschaften:** `Text1 = "x"` gibt es nicht — Zugriff
|
||||
immer explizit (`Text1.Text`). „Default" ist nur die CommandButton-
|
||||
|
||||
Reference in New Issue
Block a user