WinMove zerstört Label

    • Offizieller Beitrag

    Ich habe mir eine Art dynamische MsgBox erstellt (InfoBox). Dient in erster Linie dazu, Key-Value Paare anzuzeigen. Man kann z.B. die Datensätze einer CSV Datei Satz für Satz anzeigen und die Feldnamen und -Inhalte werden anhand ihrer Länge sauber positioniert. Dazu werden die Label, die die Werte anzeigen, in ihrer Höhe verändert um Multilinefähig zu sein.

    Dabei ist mir übrigens aufgefallen, dass bei Verwendung von GuiCtrlSetData() der neue Inhalt das Label nicht beeinflusst. D.h. man muss es immer wieder löschen und neu erstellen um Werte in dynamischer Größe anzeigen zu können.

    Nun die entsprechenden Berechnungen funktionieren auch wie erwartet. Das einzige Problem: Wenn ich aufgrund veränderter Labelpositionen auch das Fenster in der Größe ändern muss, werden die Multiline-Label geschrottet und die ganze Anzeige fliegt mir um die Ohren. Die Problemfunktion ist tatsächlich WinMove. Kommentiere ich den Aufruf aus, wird alles korrekt positioniert (z.T. dann ausserhalb des sichtbaren Bereiches).

    Das Verhalten kann ich in keiner anderen Konstellation rekonstruieren. Einfache GUI mit mehrzeiligem Label - WinMove - alles ist gut.

    Ich habe im Moment keine Idee. Vielleicht seht ihr mehr als ich.

    Hier das Skript, der betreffende Bereich ist markiert:


    [EDIT] Lösung: GUICtrlSetPos statt ControlMove verwenden

  • BugFix 28. März 2020 um 18:14

    Hat das Label [ offen ] hinzugefügt.
  • Ich glaube, dass du in diesem Fall die Breite und Höhe des Label Controls in Zeile 70/71 explizit angeben musst. D.h. du musst vorher die Breite / Höhe ermitteln.

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

    • Offizieller Beitrag

    OMG, steht bei ControlMove leider nicht in der Hilfe, aber wir hatten das Problem schonmal irgendwann. Änderungen von ControlMove werden NICHT im Fenster gespeichert und sind nur temporär. Für fixe Änderung muss man GUICtrlSetPos verwenden.

    Zum Glück ist mir das noch eingefallen, trotzdem Danke für deine Mühe. ;)

  • BugFix 28. März 2020 um 18:59

    Hat das Label von [ offen ] auf [ gelöst ] geändert.