MQL5 v1.51: Knopf-Schrift an die Breite anpassen (messen statt schaetzen)
User: "die Groesse stimmt jetzt aber der text ist viel zu gross fuer die buttons" - die Beschriftungen waren abgeschnitten (Zoner, Kana, Muste). Von der Punktgroesse auf die Pixelbreite zu schliessen geht nicht: das Verhaeltnis haengt an der DPI-Skalierung des Rechners und ist aus dem Quelltext nicht bekannt. Font 16 sieht auf 100 % passend aus und laeuft auf 150 % ueber. Derselbe Fall wie der Zeilenabstand der Meldungen in v1.44. BtnFontFit() sucht die groesste Schrift, bei der ALLE 13 Beschriftungen in den Knopf passen - ueber TextSetFont + TextGetSize, also am echten Renderer. InpBtnFont ist damit eine Obergrenze, kein Festwert. - TextSetFont mit NEGATIVER Groesse = 1/10 pt; nur diese Form wird DPI-korrekt skaliert. - Gemessen wird MIT dem "* "-Vorsatz des aktiven Zustands, sonst passte der Text nur im ausgeschalteten Zustand. - Auch die Hoehe wird geprueft, sonst schneidet der Knopf oben/unten ab. - OBJPROP_FONT wird jetzt ausdruecklich gesetzt (InpBtnSchrift, Arial): gemessen wurde mit dieser Schrift, gezeichnet sonst mit MT5s Vorgabe - zwei verschiedene Schriften waeren zwei verschiedene Breiten. Die Schriftgroesse gilt fuer alle Knoepfe und richtet sich nach der laengsten Beschriftung. Wer groessere Schrift will, macht die Knoepfe breiter (InpBtnBreite) - das ist der ehrliche Regler. 0 errors 0 warnings, .ex5 frisch, Spiegel bitgleich. Das Schriftbild selbst ist NICHT verifiziert - dafuer braucht es den Blick auf den Chart.
This commit is contained in:
@@ -9704,3 +9704,33 @@ Praxis nicht.
|
||||
löschen). Der Code-Guard verhindert nur den sichtbaren Schaden, nicht die
|
||||
dreifache Last.
|
||||
✅ `0 errors, 0 warnings`, `.ex5` frisch, Spiegel bitgleich.
|
||||
|
||||
### ⚠⚠ „Der Text ist viel zu groß für die Buttons" — Schrift MESSEN statt schätzen (2026-08-22, v1.51)
|
||||
|
||||
Die Beschriftungen waren abgeschnitten (`Zoner`, `Kana`, `Muste`, `Meldur`).
|
||||
⚠⚠ **Von der Punktgröße auf die Pixelbreite zu schließen geht nicht** — das
|
||||
Verhältnis hängt an der **DPI-Skalierung** des Rechners und ist aus dem
|
||||
Quelltext nicht bekannt. Font 16 sieht auf 100 % passend aus und läuft auf
|
||||
150 % über. **Exakt derselbe Fall wie der Zeilenabstand der Meldungen in v1.44**,
|
||||
wo dieselbe Schätzung zweimal danebenlag, bevor gemessen wurde.
|
||||
|
||||
✅ **`BtnFontFit()`** sucht die größte Schrift, bei der **alle 13** Beschriftungen
|
||||
in den Knopf passen — über `TextSetFont` + `TextGetSize`, also am echten
|
||||
Renderer. `InpBtnFont` ist damit eine **Obergrenze**, kein Festwert.
|
||||
⚠ `TextSetFont` mit **negativer** Größe = 1/10 pt; nur diese Form wird
|
||||
DPI-korrekt skaliert.
|
||||
⚠ Gemessen wird **mit dem `"* "`-Vorsatz** des aktiven Zustands — sonst passte
|
||||
der Text nur im ausgeschalteten und liefe beim Einschalten über.
|
||||
⚠ Auch die **Höhe** wird geprüft, sonst schneidet der Knopf oben/unten ab.
|
||||
⚠ **`OBJPROP_FONT` wird jetzt ausdrücklich gesetzt** (`InpBtnSchrift`, Arial):
|
||||
gemessen wurde mit dieser Schrift, gezeichnet sonst mit MT5s Vorgabe — zwei
|
||||
verschiedene Schriften wären zwei verschiedene Breiten. Dieselbe
|
||||
Zwei-Quellen-Falle wie bei der P(break)-Formulierung in v1.35.
|
||||
|
||||
⚠ Die Schriftgröße ist für **alle** Knöpfe gleich und richtet sich nach der
|
||||
LÄNGSTEN Beschriftung (`Meldung`). Wer eine größere Schrift will, macht die
|
||||
Knöpfe breiter (`InpBtnBreite`) — das ist der ehrliche Regler, nicht die
|
||||
Schriftgröße.
|
||||
✅ `0 errors, 0 warnings`, `.ex5` frisch, Spiegel bitgleich.
|
||||
⚠ **Das Schriftbild selbst ist NICHT verifiziert** — dafür braucht es den Blick
|
||||
auf den Chart. Belegt sind Compile und Verdrahtung, nicht das Ergebnis.
|
||||
|
||||
Reference in New Issue
Block a user