MQL5 v1.49: Knoepfe auf 200 % + Spalten-Rueckfall

User: "die knoepfe sind viel zu klein, vergroessere um 200%".
Breite 66->132, Hoehe 17->34, Schrift 8->16.

FALLE 1 - die Aenderung waere auf jedem laufenden Chart NIE angekommen:
XSIZE, YSIZE und FONTSIZE standen im if(ObjectFind<0)-Zweig, wurden also nur
beim ERZEUGEN gesetzt. Die Knoepfe leben unter BPFX und ueberstehen Redraw() -
ein bestehendes Objekt haette seine alte Groesse behalten. Exakt der
v1.44-Fehler bei den Meldungs-Labels. Alle drei stehen jetzt im Redraw-Teil.
Merksatz: bei einem Objekt, das den Redraw UEBERLEBT, gehoert jede
einstellbare Eigenschaft in den Redraw-Teil, nicht in den Erzeugungs-Zweig.

FALLE 2 - die Groesse haette eine Falle aufgemacht: 13 Knoepfe a 34 px sind ein
490 px hoher Stapel. Auf einem niedrigen Chartfenster liefen die obersten aus
dem sichtbaren Bereich - und weil genau diese Knoepfe die einzige Moeglichkeit
sind, eine Gruppe wieder einzublenden, waere das ein Zustand ohne Rueckweg.
BtnDraw() misst jetzt CHART_HEIGHT_IN_PIXELS und bricht bei Bedarf in eine
zweite Spalte um (400 px -> 10 je Spalte / 2 Spalten; ab ~600 px eine Spalte).
Im Umbruch-Fall stimmt die Lesereihenfolge nicht mehr exakt - bewusst in Kauf
genommen, erreichbar schlaegt schoen.

0 errors 0 warnings, .ex5 frisch, Spiegel bitgleich.
This commit is contained in:
Axel Hocks
2026-08-22 12:24:46 +02:00
parent 911d5220b9
commit 4a6be29c8f
2 changed files with 57 additions and 9 deletions
+33
View File
@@ -9628,3 +9628,36 @@ nie auf das eingelesene Dokument.** Und: **eine Größenprüfung belegt nur, das
nichts abgeschnitten wurde — nicht, dass der Inhalt stimmt** (dieselbe Klasse
wie „eine LEERE Datei besteht `node --check`"). Wo es billig ist, gehört die
erwartete Zunahme mitgeprüft, nicht nur ihr Vorzeichen.
### ⚠⚠ Knöpfe auf 200 % (2026-08-22, v1.49) — und zwei Fallen dabei
User: „die Knöpfe sind viel zu klein, vergrößere um 200 %".
Breite **66 → 132**, Höhe **17 → 34**, Schrift **8 → 16**.
⚠⚠ **DIE ÄNDERUNG WÄRE AUF JEDEM LAUFENDEN CHART NIE ANGEKOMMEN.** `XSIZE`,
`YSIZE` und `FONTSIZE` standen im `if(ObjectFind(...) < 0)`-Zweig, wurden also
**nur beim Erzeugen** gesetzt. Die Knöpfe leben unter `BPFX` und überstehen
`Redraw()` — ein bestehendes Objekt hätte seine alte Größe behalten. Das ist
**exakt der v1.44-Fehler** bei den Meldungs-Labels („`OBJPROP_FONTSIZE` wurde
nur beim Erzeugen gesetzt"), und ich hätte ihn beim Bauen von v1.48 schon
vermeiden können. Alle drei stehen jetzt im Redraw-Teil.
**➜ Merksatz: bei einem Objekt, das den Redraw ÜBERLEBT, gehört jede
einstellbare Eigenschaft in den Redraw-Teil — nicht in den Erzeugungs-Zweig.**
⚠⚠ **SPALTEN-RÜCKFALL, weil die Größe eine Falle aufgemacht hätte.** 13 Knöpfe
à 34 px sind ein **490 px** hoher Stapel. Auf einem niedrigen Chartfenster
liefen die obersten aus dem sichtbaren Bereich — und weil **genau diese Knöpfe
die einzige Möglichkeit sind, eine Gruppe wieder einzublenden**, wäre das ein
Zustand ohne Rückweg: ausgeblendet und nicht mehr erreichbar. `BtnDraw()` misst
jetzt `CHART_HEIGHT_IN_PIXELS` und bricht bei Bedarf in eine zweite Spalte um.
| Chart-Höhe | je Spalte | Spalten |
|---|---|---|
| 400 px | 10 | **2** |
| ab ~600 px | 13 | 1 |
⚠ Im Umbruch-Fall stimmt die Lesereihenfolge nicht mehr exakt (bei
`CORNER_LEFT_LOWER` wächst `YDISTANCE` nach oben) — bewusst in Kauf genommen:
erreichbar schlägt schön, und der Normalfall ist eine Spalte.
`0 errors, 0 warnings`, `.ex5` frisch, Spiegel bitgleich.
⚠ Wer noch größer will, dreht `InpBtnBreite`/`InpBtnHoehe`/`InpBtnFont` weiter —
der Spalten-Rückfall fängt zu hohe Stapel ab.