Dialog Problem -> ControlsGroup

  • Sonstiges

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Dialog Problem -> ControlsGroup

    Hey ich bins mal wieder,

    Ich bastel aktuell an Dialogen rum und habe endeckt, dass mit ControlsGroup möglich ist, Controls in Gruppen zusammen zufassen und diese somit gemeinsam zu verwalten.
    Nun ist es aber so, dass alle Controls, die sich in class controls { } befinden nicht angezeigt werden. Dazu gibt es keine Fehlermeldung in der Log.
    Wenn ich die Controls direkt einfüge, dann werden diese angezeigt.

    Ich habe auch schon einfrig die unterschiedlichsten Varianten ausprobiert, allerdings zu keiner Lösung gekommen. Die Recherche hat ergeben, dass auch andere dieses Problem haben, leider wurde dort keine Lösung hinterlassen.
    Daher nun die Frage ob jemand eine Idee hat wie es funktionieren kann. Gerne liefer ich auch den Dialog, wenn ihr den haben wollt.


    Bonusfrage:
    Ich habe endeckt, dass in einem Dialog nicht nur controlsBackground { } und controls { } definiert werden kann, sondern auch objects { }. Allerdings habe ich bisher keine Beschreibung dazu gefunden, was das machen soll. Kennt von euch jemand die Funktion?



    Freue mich auf eure Antworten.

    Gruß
  • Durch die ControlsGroup ändert sich die Position des Ursprungs der XY Achsen auf die obere linke Ecke der ControlsGroup, während sie bei normalen Controls im Bildschirm liegt. Controls außerhalb der Fläche der ControlsGroup oder des Bildschirms werden nicht angezeigt. Ich denke man muss nur deine XY Position korrigieren.

    objects {} ist für 3D Elemente in Controls wie den Kompass oder die Uhr. Wird soweit ich weiß nur auf der Karte benötigt, ingame werden sie anders angesprochen. Außerdem ist die Klasse soweit ich weiß sinnlos, da mann das RscObject auch einfach in controls {} oder controls[] stecken kann.
  • commy2 schrieb:

    Durch die ControlsGroup ändert sich die Position des Ursprungs der XY Achsen auf die obere linke Ecke der ControlsGroup, während sie bei normalen Controls im Bildschirm liegt. Controls außerhalb der Fläche der ControlsGroup oder des Bildschirms werden nicht angezeigt. Ich denke man muss nur deine XY Position korrigieren.
    Dies habe ich in der Dokumentation auch schon gelesen. Ich habe einige Varianten ausprobiert, allerdings war keine erfolgreich. Mache ich was falsch? Mein Ziel war es in der oberen linken Ecke etwas zu platzieren. Daher wäre folgende Variante die richtige, oder muss ich was anderes nutzen?
    x = 0;
    y = 0;


    commy2 schrieb:

    objects {} ist für 3D Elemente in Controls wie den Kompass oder die Uhr. Wird soweit ich weiß nur auf der Karte benötigt, ingame werden sie anders angesprochen. Außerdem ist die Klasse soweit ich weiß sinnlos, da mann das RscObject auch einfach in controls {} oder controls[] stecken kann.
    Alles klar, danke dir dafür.
  • Ich habe inzwischen viel getestet, ich bin auch ein ganzes Stück weiter gekommen.
    Nachdem ich die Positionen für die Controls neugesetzt habe, klappt es nun.

    Nun habe ich noch ein kleineres Problemchen, was die Lesbarkeit des Codes betrifft.

    Wenn ich die ControlGroups anordne wie ich möchte, wird eine nicht angezeigt, ändere ich die Reihenfolge, dann werden beide angezeigt.

    Quellcode: PSEUDO.CODE

    1. DIALOG {
    2. controls {
    3. CONTROLGROUP1 {
    4. controls {CONTROLS}
    5. };
    6. CONTROLGROUP2 {
    7. controls {CONTROLS}
    8. }
    9. }
    10. }


    Spoiler anzeigen

    Ich habe zwei ControlGroups (einmal gelb und einmal rot markiert).
    Wenn die gelbe ControlGroup über der roten ControlGroup im Code steht, dann ist die gelbe ControlGroup nicht sichtbar.
    Wenn die rote ControlGroup über der gelben ControlGroup im Code steht, dann ist die gelbe ControlGroup sichtbar.



    Vielleicht hat jemand von euch eine Idee woran das liegen könnte.

    Sourcecode:
    defaultStyle.h
    vehicleTrader.h

    Aufgerufen wird der Dialog mit createDialog "vehicletrader"


    Notfalls lasse ich das auch so.
    Bloß befürchte ich aktuell, dass ich wieder auf das Problem stoßen werde und wüsste gerne eine Lösung dafür.
  • Also Fehler gefunden, da ich in einer ControlGroup eine ListNBox verwende und dort idcLeft und idcRight auf -1 gesetzt habe, wird der erste Control, der ebenfalls idc = -1 als Argument hat, verwechselt und damit unsichtbar (oder irgendwie so ähnlich :D ).

    Lösung: alle Controls nummerieren genau wie es auch die Dokumentation sagt

    Quelle: BI-WIKI

    BI-WIKI schrieb:

    idcLeft/idcRight bug?: Using -1 for either idc will link to first control with an idc using -1, instead of treating it as an unused idc. Workaround: number every idc in dialog rather than leaving any idc as -1.

    So damit bin ich und das Thema komplett am
    ENDE.