GUI(s) + Controls - Wie arbeitet ihr? Was ist performanter?

  • Hallöchen zusammen,

    ich arbeite in fast jedem „Projekt“ von mir mit AutoIt. Oftmals habe ich sehr viele Controls und manchmal auch mehr als ein GUI. Nun bisher komme ich gut klar, ich mache je nach Projekt und Controls Funktionen _Show/Hide_ControlsXYZ und zeige/verstecke die gewollten Controls. Nun bei meinem jetzigen Projekt ist dies teilweise zu viel geworden, sodass ich einen zweite GUI integriert habe (ohne Rand und einfach über den eigentlichen GUI liegend).

    Nun wollte ich euch mal fragen, wie ihr so vorgeht, wenn ihr Programme mit vielen GUIs und vielen Cotnrols habt, in Bezug auf das ein/ausblenden von Controls. Ich bin momentan das erste mal an die Grenze gestoßen, dass das ein und ausblenden ohne ein GUI LOCK und UNLOCK nicht Nutzerfreundlich ausschaut (man sieht halt wie die Controls nacheinander ausgeblendet werden).

    Also wäre dies mal ein reiner Informationsthread in Bezug auf Performance, und eure Vorgehensweisen.

    So Far

    Grüße Yaerox

    Grüne Hölle

  • Hab den Thread ganz vergessen, danke m-obi ^^

    Ich glaub deine Variante werd ich mir als nächtes mal anschauen ^^

    Hat denn jemand vll. ein paar Informationen zur Performance? Also ist es sinnvoller bei vielen Controls mehrere GUIs einzurichten, oder sofern es geht auch einfach nur ControlHide/Show?

    Ich glaub sofern ich bald mal wieder ein wenig Freiraum habe werd ich dazu auch mal ein paar Tests machen ...

    Grüße Yaerox

    Grüne Hölle

    • Offizieller Beitrag

    Ich habe es bisher immer so gemacht, dass ich mehrere GUIs erstellt habe und dann GUI-HIDE/SHOW. Wobei ich die MAIN-GUI eigentlich immer angezeigt lasse und diese nur deaktiviere. Die anderen GUIs waren dann meistens Eingabefenster oder um Einstellungen vorzunehmen. Bei mir waren das aber immer separate Fenster (zwar als Child, aber nicht im MAIN-GUI integriert).
    Wobei ich mir das Konzept von m-obi auch mal angesehen habe und es ganz gut finde. Das werde ich wohl auch mal ausprobieren... :thumbup:
    Von der Performance her sollte das Extra-GUI-Konzept schneller (beim wechseln) sein, als alle Controls in einer Schleife anzuzeigen/zu verstecken. Vor allem leidet aber auch die Lesbarkeit darunter, weil man die Controls in ein Array packen muss, um das vernünftigt handeln zu können. Ich bevorzuge es, den Controlvariablen passende/merkbare Namen zu geben.

  • Ich habe es bisher immer so gemacht, dass ich mehrere GUIs erstellt habe und dann GUI-HIDE/SHOW. Wobei ich die MAIN-GUI eigentlich immer angezeigt lasse und diese nur deaktiviere. Die anderen GUIs waren dann meistens Eingabefenster oder um Einstellungen vorzunehmen. Bei mir waren das aber immer separate Fenster (zwar als Child, aber nicht im MAIN-GUI integriert).


    Exakt genauso mach ich das auch immer. Am Anfang werden die GUIs erstellt und nur die Main-GUI ist auf show. Danach werden dann die ganzen OnEvents gruppenweise zugeordnet. Alle Fenster werden auch als Child erstellt und wenn eins auf show gemacht wird, wird die Main-GUI disabled. Beim schliessen des Childs, lasse ich diese Funktion ausführen:

    [autoit]

    Func _GuiClose($_hMainGui, $_hSubGui)
    GUISetState(@SW_ENABLE, $_hMainGui)
    WinSetOnTop($_hMainGui, "", 1)
    GUISetState(@SW_HIDE, $_hSubGui)
    WinActivate($_hMainGui)
    WinSetOnTop($_hMainGui, "", 0)
    EndFunc

    [/autoit]