Fehler oder normal?

  • Moin, ich habe 2 GUIS, GUI1 erscheint, wenn man mein Script ausführt GUI2 wird zwar auch erstellt, aber nicht gezeigt.
    Wenn ich dann meine GUI1 direkt wieder schließen will:

    [autoit]

    WinSetTrans($GUI1,"",0)
    GUISetState()
    for $i=0 to -255 step -5
    WinSetTrans($GUI1,"",$i)
    sleep(10)
    next

    [/autoit]

    Dann öffnet sich plötzlich GUI2, obwohl die eigl. garnicht den Befehl bekommt. Die öffnet sich sogar,
    wenn ich den close Befehl vor dem Beenden des GUI1 eingebe.

    Meine Frage war daher, ob es gewollt ist, dass sich dann die GUI2 öffnet, obwohl sie nur erstellt wurde.

    Einmal editiert, zuletzt von MaxChri (1. September 2014 um 00:39)

  • Poste doch mal ein vollständiges, lauffähiges Skript, was das Verhalten reproduziert.

    So kann dir schneller und besser geholfen werden.

    There's a joke that C has the speed and efficieny of assembly language combined with readability of....assembly language. In other words, it's just a glorified assembly language. - Teh Interwebz

    C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, you blow off your whole leg. - Bjarne Stroustrup
    Genie zu sein, bedeutet für mich, alles zu tun, was ich will. - Klaus Kinski

  • Mein Script hat über 400 Zeilen...

    Es ist halt so, dass sich GUI2 einfach zeigt, wenn man GUI1 beendet und somit das ganze Script.

  • GuiSetState setzt man nur ohne Parameter ein, wenn man irgendwelche Wettbewerbe bestreiten will und die 5 Bytes einsparen will.

  • Okay und wie kann ich das umändern theoretisch? Oder gibts irgendwo eine Hilfe? Weiß nicht, wonach ich suchen soll

  • Moin!

    Dein Code-Fragement enthält auf jeden Fall schonmal einen Fehler:
    Du verwendest negative Werte als Transparenzparameter, diese reichen aber nur von 0 (nicht sichtbar) bis +255 (voll sichtbar).

    Die Schleife muss also so aussehen, um ein Fenter einzublenden:

    [autoit]

    For $i = 0 To 255 Step 5
    WinSetTrans($hGui, "", $i)
    Sleep(10)
    Next

    [/autoit]


    Zum Ausblenden eines Fensters:

    [autoit]

    For $i = 255 To 0 Step -5
    WinSetTrans($hGui, "", $i)
    Sleep(10)
    Next

    [/autoit]
  • Danke Friesel.

    Mein Problem war nochmal, dass wenn ich mein Script starte, sich GUI1 zeigt. Wenn ich GUI1 beende und GUI2 garnicht geöffnet habe, dass GUI1
    langsam transparenter wird, und während dieses Vorgang zeigt sich GUI2 aufeinmal, obwohl es garnicht den Befehl dazu bekommen hat, jedoch aber created wurde.

  • Wie bereits weiter oben gesagt:

    [autoit]

    WinSetTrans($GUI1,"",0)
    GUISetState() ;Dieser Befehl setzt das zuletzt erstellte (sofern nicht mit guiswitch() geänderte) Fenster auf sichtbar. Nimm die Zeile raus und es funktioniert...
    for $i=0 to -255 step -5
    WinSetTrans($GUI1,"",$i)
    sleep(10)
    next

    [/autoit]


    Ja Kanashius, ich weiß, dass du der beste bist xDDD

  • Dieser Thread scheint sich von seinem ursprünglichen Zweck zu entfernen. Was soll diese nutzlose Antwort @MaxChri?
    Wenn du keinen sinnvollen Austausch mit einem Internetforum zustande bringst könnte dieser Thread genauso gut wieder geschlossen werden. Es wurde bereits mehrmals festgestellt, dass dein Codeschnipsel zu wenige Informationen enthält. Über die beiden Vorschläge, die gewissermaßen ignoriert wurden, kommen wir vermutlich nicht hinaus.

  • name22

    Ich habe kein Beispiel ignoriert und unkommentiert gelassen. Da Kanashius mir schon öfters geholfen hatte,
    wollte ich mich für diese Leistung in kompetenter Fachwissenschaft bzgl. der Jugend, bedanken. Dies entspricht
    lediglich ein "gefällt mir", welches in diesem Forum fehlt. Ob es sich vom Thema schneidet, obwohl es nur ein "danke"
    war, kann ich nicht sagen - Ansichtssache des Betrachters. Falls du weitere Mängel an meiner Leistung insbesondere
    der Schreibkompetenz siehst, bitte ich dich, mir diese vorzüglich mitzuteilen, damit auch du, der große name22 keine weiteren
    Misskommunikation in mir siehst.

    Zitat:
    Was soll diese nutzlose Antwort @MaxChri?
    Zitat Ende

    Diese nutzlose Antwort diente zur Bestätigung, die davor gepostete Nachricht gelesen zu haben.

    ,läuft bei dir.

  • @MaxChri Bedaure, aber dieser private Austausch war mir völlig unbekannt. Du hast alle Hinweise ignoriert die dich um eine Ausführung deiner Problembeschreibung und ein vollständigeres Script gebeten haben. Wie Kanashius in seinem Beitrag bereits angedeutet hat "Wie bereits weiter oben gesagt:" habe ich schon vermutet, dass das Problem in dieser Zeile liegt. Statt mich darauf hinzuweisen, dass du mich nicht verstehst hast du diesen Hinweis ignoriert. Wenn ich dein Verhalten immer noch falsch interpretiere lass es mich wissen.
    Ich versuche Themen im Supportbereich immer so zu beenden, dass andere Personen die über die Suchfunktion darauf stoßen wissen was die Lösung für ihr Problem ist. In deinem Fall war ich mir nicht mal sicher ob das Problem jetzt gelöst wurde und wenn ja, durch welches Vorgehen. An deiner Schreibkompetenz habe ich übrigens nicht gezweifelt, aber "Ja Kanashius, ich weiß, dass du der beste bist xDDD " war wohl in meinen Augen kein klarer Hinweis darauf, dass das Problem gelöst ist.

  • Tut mir Leid, name22. Ich versuche mich in Zukunft besser auszudrücken und direkt klar zu stellen, falls unter anderem ein vollständiges Script
    gefordert wird, soweit ich kann. Mein vollständiges Script wäre >400 Zeilen lang und hätte sogar noch viele andere Fehler.
    Zur Veranschaulichung habe ich nur mein möglicher Fehler gepostet.
    Ich wusste auch nicht, wie ich mein komplettes Script verkürzen könnte aber Kanashius hat mich anschließend auf die richtige Fährte gebracht.

    Mein Problem ist gelöst und war zuvor, dass ich nach dem "create GUI2" das Fenster nicht auf" invisible" gesetzt habe.