• Offizieller Beitrag

    Ich konnte das Anzeigeproblem fixen, damit meine ich den 1. Fehler aus meinem 1.Post.

    In der Datei Autoit_Studio.au3 direkt vor der While Wend Schleife folgendes einfügen:

    [autoit]

    _WINDOW_REBUILD()

    [/autoit]

    Damit wird der Fehler beim klicken auf das Hintergrundbild beseitigt, das Menü bleibt ständig sichtbar.
    Frage mich aber nicht warum das so ist, ich tippe darauf, das vor dem ausführen der Funktion sich die Controls unglücklich überlappen.

    Hab aber noch einen Bug entdeckt. Ok es ist eigentlich kein Bug aber das Hintergrundbild des Formeditors beginnt mit der
    Horizental position unter dem Bild für den Blauen Balken und hinter den Menühintergrund.
    So wie ich das sehen ist die Startposition 100, obwohl die beiden Bilder von 0-174 Horizental belegen.

    formstudio2.au3
    Die beiden Bilder:

    [autoit]

    GUICtrlCreatePic("data\side.jpg", 0, 0, 168, @DesktopHeight)
    GUICtrlSetResizing(-1, $GUI_DOCKALL)
    GUICtrlSetState(-1, $GUI_DISABLE)

    [/autoit][autoit][/autoit][autoit]

    $blue_1 = GUICtrlCreatePic("data\blue.jpg", 168, 0, 6, @DesktopHeight)
    GUICtrlSetResizing(-1, $GUI_DOCKALL)
    GUICtrlSetState(-1, $GUI_DISABLE)

    [/autoit]

    Das Hintergrundbild:

    [autoit]

    $background_pic = GUICtrlCreatePic(@ScriptDir & "\data\background.jpg", 100, 0, $p[0] - 100, $p[1])

    [/autoit]


    Damit man das Wolkenbild auch komplett sehen kann sollte das so aussehen:

    [autoit]

    $background_pic = GUICtrlCreatePic(@ScriptDir & "\data\background.jpg", 175, 0, $p[0] - 100, $p[1])

    [/autoit]

    Btw., dein Script ist für einen Ausßenstehenden verflucht schwer nachzuvollziehen, zu viele Funktionen liegen in den Includes.
    Ein ständiges hin und hergespringe, das wahrscheinlich nur du verstehst.


    Edit2: _WINDOW_REBUILD() muß scheinbar immer aufgerufen werden, bevor oder nachdem das Formstudio aufgerufen wird.
    Der Anzeigefehler ist nemlich wieder da, wenn ein anderes Projekt geöffnet wird und dann das Formstudio aktiviert wird.
    Ich würde das ja selbst testen, aber mit qualmt schon der Kopf von hin- und herhoppen in den Includes und finde einfach nicht wo
    das Formstudio gestartet wird.

  • Ich beginne gerade ein neues größeres Prokjekt für die Arbeit und wollte eigendlich auch die GUI komplett im ISN Formstudio erstellen, anstatt per Hand in der au3.
    Ich stehe gerade auf dem Schlauch :whistling:

    Beim erstellen der Form wird doch die .isn im Hauptscript includiert.

    Sollte meine komplette erstellte Form nicht auch beim testen des Hauptscriptes angezeigt werden?
    Schließlich ist ja die Form includiert.

    Hauptdatei

    [autoit]

    ;*****************************************
    ;Erstellt mit ISN AutoIt Studio v. 0.86 BETA
    ;*****************************************
    #include <Forms\Texthilfe_Gui.isf>

    [/autoit]


    Wenn ich im Formstudio auf Form testen klicke wird doch auch alles angezeigt.
    Und wenn ich auf kompelieren klicken wird scheinbar der Code von der Form auch nicht includiert.

    Wenn ich im Formstudio auf "Code generieren klicke" steht doch eigendlich alles relevante drin ?
    Wenn ich den generierten Code als .au3 speichern und dann diese statt der .isf include funktioniert alees normal.

    Kann das sein das die aktuelle Beta ( bei der 0.85 war es auch schon) den code von der .isf trotz include nicht includiert ?

    [autoit]

    ; -- Created with ISN Form Studio 2 for ISN AutoIt Studio -- ;
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Include <GuiButton.au3>

    [/autoit][autoit][/autoit][autoit]

    $Kundenkontakt = GUICreate("Kundenkontakt",400,600,-1,-1,-1,-1)
    GUISetBkColor(0xFFFFFF,$Kundenkontakt)
    $Test = GUICtrlCreateLabel("Test",60,20,50,15,-1,-1)
    GUICtrlSetBkColor(-1,"-2")
    $combo1 = GUICtrlCreateCombo("",20,60,150,21,-1,-1)
    GUICtrlSetData(-1,"Test Combo")
    GUISetState(@SW_SHOW,$Kundenkontakt)

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

    [/autoit][autoit][/autoit][autoit]

    EndSwitch
    WEnd

    [/autoit]
    • Offizieller Beitrag
    [autoit]

    ;*****************************************
    ;Erstellt mit ISN AutoIt Studio v. 0.86 BETA
    ;*****************************************
    ;*****************************************
    ;test.au3 by Michael
    ;Erstellt mit ISN AutoIt Studio v. 0.85 BETA
    ;*****************************************
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Include <GuiButton.au3>
    #include <Forms\Test.isf>

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    GUISetState(@SW_SHOW,$Kundenkontakt)

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

    [/autoit][autoit][/autoit][autoit]

    EndSwitch
    WEnd

    [/autoit]

    ISI360, es wäre sehr sinnvoll, wenn in der isf Datei auch die benötigten Includes gesetzt werden. Die muß man im Hauptscript per Hand einfügen ;)

  • Danke Raupi, aber auch die includes müssen noch zwingend mit in die Haupdatei sonst gibts eine Fehlermeldung.

    C:\Program Files (x86)\ISN AutoIt Studio\Projects\Texthilfe\Texthilfe.au3 (13) : ==> Variable used without being declared.:
    Case $GUI_EVENT_CLOSE
    Case ^ ERROR


    Die Includes müssen also auch noch rein welche bei einem Klick auf "Code genieren" angezeigt werden
    In diesem Fall
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Include <GuiButton.au3>


    Also dar man sich nicht dadurch beirren lassen was "Code generieren" bezogen auf die #includes drin steht, die müssen in der Haupdatei definitiv drin stehen.
    Ich dachte durch die include der .isf werden die auch mit eingetragen :D ;)

    ISI360, es wäre sehr sinnvoll, wenn in der isf Datei auch die benötigten Includes gesetzt werden. Die muß man im Hauptscript per Hand einfügen ;)


    Ja da bin ich unbedingt auch dafür !
    Also gibts morgen dann die 0.87 Beta :thumbup:

    • Offizieller Beitrag

    Hm, du warst zu schnell, hab das Script in meinem Post schon editiert und die Includes eingefügt ;)

  • Raupi :

    Danke! Den Grafikbug konnte ich wirklich mit _WINDOW_REBUILD() beheben....

    Und wegen unlesbarem Code...ja da stimme ich dir zu...ist ja auch ein rießen Projekt...aber ich plane sowiso die Version 1.0 parallel zu den aktuellen Beta Versionen zum Teil neu zu schreiben und so mehr ordnung in das Chaos zu bringen...^^

    Und ja das mit den Includes wäre ne gute Idee...mal schauen wie es sich umsetzen lässt ;)

  • Ich habe immer noch ein Problem die *.isf einzubinden.

    Alle includes in der Hauptdatei gesetzt und trotzdem kommt die Fehlermeldung das die Variable nicht deklariert ist bei

    [autoit]

    GUISetState(@SW_SHOW,$Kundenkontakt)

    [/autoit]

    (habe grad das oben genannte Beispiel genommen)

  • Ich habe immer noch ein Problem die *.isf einzubinden.

    Alle includes in der Hauptdatei gesetzt und trotzdem kommt die Fehlermeldung das die Variable nicht deklariert ist bei

    [autoit]

    GUISetState(@SW_SHOW,$Kundenkontakt)

    [/autoit]

    (habe grad das oben genannte Beispiel genommen)

    Und wie sieht die Fehlermeldung in ISN unten (rot) aus, genauso wie bei mir in Post 344 ?

  • Wie gesagt, bei mir kommt NUR der eine Fehler:

    C:\Program Files (x86)\AutoIt3\ISN AutoIt Studio\Projects\TimeCatch\Test.au3 (10) : ==> Variable used without being declared.:
    GUISetState(@SW_SHOW,$Test)
    GUISetState(@SW_SHOW,^ ERROR

    Gruß Protaris

  • ok das ist etwas anderes...
    - hast du deine .isf Datei (GUI) via include eingebunden?
    - steht das GUISetState(@SW_SHOW,$Test) auch irgentwo NACH dem include und nicht davor?
    - ist $Test auch wirklich das Handle zu deiner GUI? (Kanst du prüfen indem du deine .isf Datei öffnest und unter GUI Eigenschaften -> Handle der GUI findest du das Handle...)

  • - ist $Test auch wirklich das Handle zu deiner GUI? (Kanst du prüfen indem du deine .isf Datei öffnest und unter GUI Eigenschaften -> Handle der GUI findest du das Handle...)

    Ja $Test ist mein Handle

    - steht das GUISetState(@SW_SHOW,$Test) auch irgentwo NACH dem include und nicht davor?

    :rolleyes: Natürlich nicht....

    - hast du deine .isf Datei (GUI) via include eingebunden?


    Ja ist sie

    Deswegen verzweifle ich ja auch :pinch:

    • Offizieller Beitrag

    @Protaris, zeig mal das Hauptscript.
    Und das isf File auch. Einfach mal die isf Datei in SciTE laden und hier einfügen.

  • @131738

    OK ich werde in der nächsten Version die Zeile wieder einbauen...aber sie wird nur aktiv wenn als Sprache die china.lng gewählt ist, ok?

    OK!!!!

  • So hier das Script und das *.isf File:

    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Include <GuiButton.au3>
    #include <Forms\TimeCatch.isf>
    GUISetState(@SW_SHOW,$TimeCatch)

    [/autoit][autoit][/autoit][autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

    [/autoit]

    und hier der GUI code

    [autoit]

    ; -- Created with ISN Form Studio 2 for ISN AutoIt Studio -- ;
    $TimeCatch = GUICreate("TimeCatch",517,233,-1,-1,-1,-1)
    GUICtrlCreateLabel("Mein Text",220,40,50,15,-1,-1)
    GUICtrlSetBkColor(-1,"-2")

    #cs
    [gui]
    title=TimeCatch
    breite=517
    hoehe=233
    style=-1
    exstyle=-1
    bgcolour=0xF0F0F0
    bgimage=none
    handle=TimeCatch
    parent=
    code=
    [0x000715BA]
    handle=288
    code=
    type=label
    x=220
    y=40
    width=50
    height=15
    text=Mein Text
    tooltip=
    state=$GUI_SHOW+$GUI_ENABLE
    style=
    exstyle=
    textcolour=0x000000
    bgcolour=-2
    font=MS Sans Serif
    fontsize=8
    fontstyle=400
    fontattribute=0
    id=
    func=
    bgimage=
    #ce

    [/autoit]