Implement and archive Phase 5 help system

This commit is contained in:
2026-09-07 09:59:21 +02:00
parent e236306657
commit cc82830889
23 changed files with 1950 additions and 56 deletions

View File

@@ -32,7 +32,9 @@ Timer, VScrollBar` — alle außer `Menu` über die Toolbox platzierbar
## Eigenschaften/Methoden/Ereignisse je Steuerelement
**Form** — Ereignisse: Click, DblClick, DragDrop, DragOver, GotFocus,
### Form
Ereignisse: Click, DblClick, DragDrop, DragOver, GotFocus,
KeyDown, KeyPress, KeyUp, Load, LostFocus, MouseDown, MouseMove, MouseUp,
Paint, Resize, Unload. Methoden: CLS, DRAG, HIDE, LOAD, MOVE, PRINT,
PRINTFORM, REFRESH, SHOW, TEXTHEIGHT, TEXTWIDTH, UNLOAD. Eigenschaften:
@@ -41,27 +43,35 @@ DragMode, Enabled, ForeColor, FormName, FormType, Height, Left, MaxButton,
MinButton, MousePointer, Parent, ScaleHeight, ScaleWidth, Tag, Top,
Visible, Width, WindowState.
**CommandButton** — Ereignisse: Click, DragDrop, DragOver, GotFocus,
### CommandButton
Ereignisse: Click, DragDrop, DragOver, GotFocus,
KeyDown, KeyPress, KeyUp, LostFocus. Methoden: DRAG, MOVE, REFRESH,
SETFOCUS. Eigenschaften: BackColor, Cancel, Caption, CtlName, Default,
DragMode, Enabled, Height, Index, Left, MousePointer, Parent, TabIndex,
TabStop, Tag, Top, Value, Visible, Width. Darstellung nach Höhe:
1 = `<Text>`, 2 = einzeiliger Rahmen, ≥3 = Kasten; Mindestgröße 1×3.
**TextBox** — Ereignisse: Change, DragDrop, DragOver, GotFocus, KeyDown,
### TextBox
Ereignisse: Change, DragDrop, DragOver, GotFocus, KeyDown,
KeyPress, KeyUp, LostFocus. Methoden: DRAG, MOVE, REFRESH, SETFOCUS.
Eigenschaften: BackColor, BorderStyle, CtlName, DragMode, Enabled,
ForeColor, Height, Index, Left, MousePointer, MultiLine, Parent,
ScrollBars, SelLength, SelStart, SelText, TabIndex, TabStop, Tag, Text,
Top, Visible, Width.
**ListBox** — Ereignisse: Click, DblClick, DragDrop, DragOver, GotFocus,
### ListBox
Ereignisse: Click, DblClick, DragDrop, DragOver, GotFocus,
Key*, LostFocus, Mouse*. Methoden: ADDITEM, DRAG, MOVE, REFRESH,
REMOVEITEM, SETFOCUS. Eigenschaften: BackColor, CtlName, DragMode, Enabled,
ForeColor, Height, Index, Left, List, ListCount, ListIndex, MousePointer,
Parent, Sorted, TabIndex, TabStop, Tag, Text, Top, Visible, Width.
**ComboBox** — wie ListBox plus Change, DropDown (Ereignisse), SelLength/
### 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
@@ -77,37 +87,51 @@ 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),
### CheckBox / OptionButton
Ereignisse: Click (Option auch DblClick),
Drag*, GotFocus, Key*, LostFocus. Methoden: DRAG, MOVE, REFRESH, SETFOCUS.
Eigenschaften: BackColor, Caption, CtlName, DragMode, Enabled, ForeColor,
Height, Index, Left, MousePointer, Parent, TabIndex, TabStop, Tag, Top,
Value, Visible, Width.
**Frame** — nur DragDrop/DragOver; DRAG, MOVE, REFRESH (kein SetFocus);
### Frame
nur DragDrop/DragOver; DRAG, MOVE, REFRESH (kein SetFocus);
Container für Gruppierung (OptionButton-Gruppen). `Index` und `TabIndex`
werden in den Originaldateien auch für Frames gespeichert.
**Label** — Ereignisse: Change, Click, DblClick, Drag*, Mouse*. Methoden:
### Label
Ereignisse: Change, Click, DblClick, Drag*, Mouse*. Methoden:
DRAG, MOVE, REFRESH. Eigenschaften: zusätzlich Index, TabIndex, Alignment,
AutoSize, BorderStyle.
**HScrollBar/VScrollBar** — Ereignisse: Change, Drag*, GotFocus, Key*,
### HScrollBar/VScrollBar
Ereignisse: Change, Drag*, GotFocus, Key*,
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.
### 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
### 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,
SETFOCUS, TEXTHEIGHT, TEXTWIDTH. Eigenschaften: zusätzlich Index, TabIndex,
TabStop, AutoRedraw, CurrentX, CurrentY, ScaleHeight, ScaleWidth.
**Timer** — Ereignis Timer, keine Methoden; Eigenschaften: CtlName, Enabled,
### 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
@@ -125,10 +149,14 @@ 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,
### Menu
Ereignis Click; Eigenschaften Caption, Checked, CtlName, Enabled,
Index, Parent, Separator, Shortcut, Tag, Visible.
**DirListBox/DriveListBox/FileListBox** — Datei-Browser-Controls
### DirListBox/DriveListBox/FileListBox
Datei-Browser-Controls
(Path/Drive/FileName/Pattern/Archive/Hidden/Normal/ReadOnly/System;
Ereignisse u. a. Change, PathChange, PatternChange). Terminal Basic bildet
sie plattformneutral nach (Laufwerksliste → Wurzeln/Mounts).

41
docs/hilfe.md Normal file
View File

@@ -0,0 +1,41 @@
# Hilfe benutzen
Die Hilfe ist im Programm eingebettet und braucht weder Internet noch ein
Arbeitsverzeichnis mit Dokumentation. Help → Contents zeigt die Referenzen
mit ihren Abschnitten in Lesereihenfolge; Help → Index ordnet sie alphabetisch.
## Kontext und Suche
F1 oder Help → Topic öffnet die Hilfe zum BASIC-Wort unter dem Cursor,
zur gewählten Designerklasse beziehungsweise Eigenschaft oder zum markierten
Menübefehl. Großschreibung und BASIC-Typsuffixe werden berücksichtigt.
Mehrere Treffer erscheinen als auswählbare Links. Ohne Treffer bleibt das
Suchwort im Index sichtbar. Im Hilfefenster kann ein Suchwort direkt eingegeben
und mit Enter gesucht werden; Backspace korrigiert es.
Options → Right Mouse aktiviert dieselbe Kontext-Hilfe per Rechtsklick.
## Navigation
Interne Links erscheinen als ◄Thema►. Tab und Shift+Tab wählen den nächsten
beziehungsweise vorherigen Link; Enter folgt dem markierten Link. Alt+F1
kehrt zu einem der letzten 20 Besuchszustände zurück, einschließlich
Leseposition und Linkfokus. Ältere Zustände werden verdrängt. Ctrl+F1 öffnet
die nächste Datei in der Contents-Reihenfolge. Am Ende erscheint ein Hinweis.
Pfeil auf/ab und Page Up/Down scrollen, Home/End springen zum Anfang/Ende.
Pfeil links/rechts verschiebt breite Tabellen und Code horizontal.
Fließtext wird an die Breite angepasst; eine Größenänderung erhält den
logischen Leseanker und den markierten Link. Bei sehr schmaler Ansicht
können breite Unicode-Zeichen horizontal gescrollt werden.
Esc schließt die Hilfe und stellt den vorherigen Fenster- und Property-Fokus
wieder her. Die allgemeinen Fensterbefehle bleiben verfügbar.
## Linkziele
Externe Links tragen zusätzlich „extern“ und zeigen ihre URL. Enter zeigt
nur einen Hinweis: Die Hilfe startet keinen Browser, Prozess oder Download.
Fehlende Dateien oder Anker erzeugen eine Diagnose. Es werden ausschließlich
mitgelieferte Dokumente angezeigt, keine beliebigen lokalen Dateien.
Weiter: [Tastatur](tastatur.md), [Tutorial](tutorial.md),
[IDE-Bedienung](ide-bedienung.md).

View File

@@ -127,11 +127,11 @@ Library-Symbole/Aufrufvertrag und der native Verbraucher-Nachweis stehen
explizit in [PLAN.md, Phase 6](../PLAN.md). Ein umbenanntes TBC erfüllt
keines der beiden Exportziele.
## Befehlsabdeckung nach Change 06
## Befehlsabdeckung nach Change 07
Alle Referenzbefehle sind in ihrer Menüfolge vorhanden. Fachbefehle der
folgenden Changes sind sichtbar deaktiviert und zeigen einen
Verfügbarkeitsgrund; ihre Kürzel gelangen nicht versehentlich an BASIC.
Alle Referenzbefehle sind in ihrer Menüfolge vorhanden und angebunden.
Nicht verfügbare Aktionen zeigen einen zustandsabhängigen Grund; ihre
Kürzel gelangen nicht versehentlich an BASIC.
Ctrl+C im Editor ist Kopieren, bei laufendem Programm mit
Output-Fokus unterbricht Ctrl+C sofort die Sitzung, ohne eine BASIC-Taste einzureihen.
@@ -143,12 +143,12 @@ Output-Fokus unterbricht Ctrl+C sofort die Sitzung, ohne eine BASIC-Taste einzur
| Search | Find, Selected Text, Repeat Last Find, Change | — |
| Run | Start/Restart/Continue/Pause, COMMAND$, wirksame Startdatei und beide Make-Dialoge | Native Erzeugung: Phase 6 |
| Debug | Breakpoints, Schritte, Calls, Watches/Watchpoints, Direktfenster, Trace/History, Break on Errors und Set Next Statement | — |
| Options | Display, Set Paths, Right Mouse, Save, Syntax Checking einschließlich Zeilenprüfung | Kontext-Hilfe: 07 |
| Window | New Window, Arrange All, Calls/Debug/Help/Immediate/Output/Project, aktive Codeliste, alle Fensterkürzel | Hilfeinhalt: 07 |
| Options | Display, Set Paths, Right Mouse, Save, Syntax Checking einschließlich Zeilenprüfung | |
| Window | New Window, Arrange All, Calls/Debug/Help/Immediate/Output/Project, aktive Codeliste, alle Fensterkürzel | |
| Designer Tools/Window | Vollständige Toolbox einschließlich Spin, Formliste, Color Palette, Menu Design Window | — |
| Help | Vollständiges Menü, About und Help-Fensterrahmen | Index, Contents, Keyboard, Topic, Using Help, Tutorial: 07 |
| Help | Index, Contents, Keyboard, Topic, Using Help, Tutorial, About | — |
Editor, inkrementelle Übersetzung, Ausführung, Formulardesigner und Debugger sind umgesetzt. Die gesamte
Editor, inkrementelle Übersetzung, Ausführung, Formulardesigner, Debugger und Hilfe sind umgesetzt. Die gesamte
Phase-5-Abnahme erfolgt in Change 08.
## Programme ausführen
@@ -469,3 +469,19 @@ Cursorziele setzen den unveränderten Quellstand der pausierten Sitzung voraus;
nach Änderungen zuerst neu starten. F5 kann weiterhin nach ausdrücklicher
Auswahl das gekennzeichnete alte Kompilat fortsetzen; seine Watches verwenden
die ursprünglichen Symbole und Slots.
## Offline-Hilfe
Help → Contents zeigt die eingebetteten Dokumente mit ihren Abschnitten,
Help → Index dieselben Ziele alphabetisch. F1 öffnet den Kontext zum
BASIC-Wort, zur Designerklasse/-eigenschaft oder zum markierten Menübefehl.
Shift+F1 erklärt die [Hilfebedienung](hilfe.md); [Tastatur](tastatur.md) und
[Tutorial](tutorial.md) beschreiben die implementierten Arbeitsabläufe.
Tab/Shift+Tab wählen Links, Enter folgt, Alt+F1 stellt bis zu 20 vorherige
Lesepositionen wieder her. Ctrl+F1 folgt der Contents-Dateireihenfolge.
Pfeile und Page Up/Down scrollen; links/rechts verschiebt breite Code- und
Tabellenzeilen. Größenänderungen behalten Thema, Leseanker und Linkfokus.
Esc kehrt zum vorherigen Fenster zurück. Die Hilfe braucht keinen Checkout
und öffnet externe Links ausschließlich als sichtbaren Hinweis.

46
docs/tastatur.md Normal file
View File

@@ -0,0 +1,46 @@
# Tastatur der IDE
## Allgemeine Bedienung
| Taste | Aktion |
| --- | --- |
| Alt+Buchstabe, F11 | Menü öffnen; Pfeile wählen, Enter bestätigt, Esc schließt |
| F6 / Shift+F6 | Nächstes / vorheriges Fenster |
| Ctrl+F4 | Aktives Fenster schließen |
| Ctrl+F7 / Ctrl+F8 | Fenster verschieben / Größe ändern; Pfeile, Enter, Esc |
| Ctrl+F9 / Ctrl+F10 / Ctrl+F5 | Minimieren / maximieren / wiederherstellen |
| F1 / Shift+F1 | Kontext-Hilfe / Hilfe benutzen |
| F2 / Shift+F12 | Code / Formular |
| F12 | Ereignisprozeduren |
| Ctrl+Z / Ctrl+X / Ctrl+C / Ctrl+V | Undo / Ausschneiden / Kopieren / Einfügen |
| F3 | Suche wiederholen |
| Shift+F2 / Ctrl+F2 | Prozeduren / vorheriger Codeort |
## Ausführung und Debugger
| Taste | Aktion |
| --- | --- |
| Shift+F5 / F5 | Start / Continue |
| Ctrl+Break | Unterbrechen |
| Ctrl+C im laufenden Output | Unterbrechen |
| F4 | Output-Vollbild umschalten |
| F7 / F8 / F10 | Run to Cursor / Einzelschritt / Prozedurschritt |
| F9 / Shift+F9 | Breakpoint / Instant Watch |
| Shift+F8 / Shift+F10 | History zurück / vorwärts |
## Designer
Pfeile verschieben die Auswahl, Ctrl+Pfeile um fünf Zellen; Shift+Pfeile
ändern die Größe. Tab/Shift+Tab wechseln das Control. F2 aktiviert das
Property-Wertfeld. Page Up/Down wechseln Eigenschaften. F10 wechselt
zwischen Property-Leiste und Menü. F12 führt zum Ereigniscode.
## Hilfefenster
Tab/Shift+Tab wählen Links, Enter folgt, Alt+F1 springt zurück und Ctrl+F1
zum nächsten Thema. Pfeile und Page Up/Down scrollen, Home/End wählen
Anfang/Ende. Esc kehrt zum vorherigen Fenster zurück.
Details: [Hilfe benutzen](hilfe.md), [Editor](ide-bedienung.md#editor-suche-und-quelltextpflege),
[Designer](ide-bedienung.md#formulare-gestalten),
[Debugger](ide-bedienung.md#debugger-und-direktfenster).

56
docs/tutorial.md Normal file
View File

@@ -0,0 +1,56 @@
# Tutorial: Vom Formular zum laufenden Programm
## Projekt und Formular erstellen
File → New Project erzeugt ein Projekt. File → New Form öffnet ein neues
Formular im Designer. Bereits vorhandene ungespeicherte Arbeit lässt sich
im Wechsel-Dialog speichern, verwerfen oder mit Cancel behalten.
File → Save Project speichert das Projekt und seine Mitglieder; die Pfade
und mögliche Überschreibbestätigungen stehen im Speicherdialog.
## Oberfläche gestalten
Tools → Command Button wählt das Werkzeug. Ziehe auf der Form eine Fläche
auf; alternativ platziert ein Doppelklick auf das Toolbox-Werkzeug ein Control.
Wähle das Control und mit Page Up/Down die Eigenschaft Caption. F2 aktiviert
das Wertfeld, tippe `Hallo` und bestätige mit Enter. Pfeile verschieben,
Shift+Pfeile verändern die Größe. Die tatsächlichen Klassennamen und
Eigenschaften stehen in der [Forms-Referenz](forms-referenz.md).
## Ereigniscode schreiben
F12 öffnet die Ereignisauswahl des gewählten Controls. Wähle Click und
bestätige. Die IDE öffnet beziehungsweise erzeugt die passende Prozedur.
Schreibe zwischen SUB und END SUB:
```basic
PRINT "Hallo aus dem Formular"
```
Mit Shift+F12 gelangst du wieder zum Formular. Syntaxfehler erscheinen
beim Verlassen der Zeile beziehungsweise unter View → Diagnostics.
Siehe [Editor und Übersetzung](ide-bedienung.md#editor-suche-und-quelltextpflege).
## Debuggen und ausführen
Setze im Ereigniscode mit F9 einen Breakpoint auf PRINT. Run → Set Start-up
File wählt das Formular als Startdatei. Shift+F5 startet das Projekt.
Betätige den Button im laufenden Formular: Die IDE hält vor PRINT und
zeigt den Quellort. F8 führt die Anweisung aus. F5 setzt das Programm fort.
F4 schaltet die Programmausgabe ins Vollbild und zurück; Ctrl+Break
unterbricht die Sitzung. Run → Restart beginnt erneut.
Window → Calls zeigt Aufrufrahmen; Debug → Add Watch beobachtet Ausdrücke.
Window → Immediate öffnet das Direktfenster für Kommandos im pausierten
Kontext. [Debugger und Direktfenster](ide-bedienung.md#debugger-und-direktfenster)
erklärt Fehlerhalte, Watchpoints und die Grenzen von Set Next Statement.
## Speichern und nächste Schritte
File → Save Project hält den Stand fest. Make EXE File und Make Library
bieten bereits die Zielauswahl; die tatsächliche Erzeugung eines nativen
Standalone-Programms beziehungsweise einer nativen Library folgt in Phase 6.
Siehe [Exportgrenze](ide-bedienung.md#native-exporte-ui-in-phase-5-erzeugung-in-phase-6).
Weiter: [Tastatur](tastatur.md), [Hilfe benutzen](hilfe.md),
[Sprachreferenz](sprachreferenz.md), [Bibliothek](bibliothek.md).