Habe ein Problem mit Buttons

  • ich will ja jetzt nicht nerven (^^), aber seit ich meine frage gestellt habe:

    30 hits - 0 antworten

    kann mir dann wer helfen?

    also nochmal:

    wie binde ich nun INetGet in den bzw die Buttons ein?

    schon mal danke für antworten

    mfg

  • Hi,
    wenn du Bilder, usw. in die exe bringen willst, ist FileInstall das richtige

    [autoit]

    Fileinstall("c:\pfad\playgame.bmp", @TempDir & "\" & "playgame.bmp")

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

    ...

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

    $Button1 = GUICtrlCreateButton("Spiel starten", 440, 456, 185, 73, $BS_BITMAP)
    GUICtrlSetImage (-1, @TempDir & "\" & "playgame.bmp")

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

    ...

    [/autoit]

    Bei Problemen mit FileInstall lies bitte die Hilfe ^^

  • siehe dieses Script:

    Script und Bilddateien müssen, da ohne Pfadangabe übergeben, im selben Ordner liegen.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>

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

    GUICreate("My GUI Button") ; will create a dialog box that when displayed is centered

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

    $Button_1 = GUICtrlCreateButton ("Run Notepad", 10, 30, 183,71,$BS_BITMAP)
    GUICtrlSetImage (-1, "account.bmp")
    $Button_2 = GUICtrlCreateButton ( "Button Test", 10, 130, 183,71,$BS_Bitmap)
    GUICtrlSetImage (-1, "homepage.bmp")
    $Button_3 = GUICtrlCreateButton ( "Button Test", 10, 230, 183,71,$BS_Bitmap)
    GUICtrlSetImage (-1, "playgame.bmp")
    GUISetState () ; will display an dialog box with 2 button

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

    ; Run the GUI until the dialog is closed
    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $Button_1
    MsgBox(0, 'Testing', 'Button 1 was pressed'); Will demonstrate Button 2 being pressed
    Case $msg = $Button_2
    MsgBox(0, 'Testing', 'Button 2 was pressed'); Will demonstrate Button 2 being pressed
    Case $msg = $Button_3
    MsgBox(0, 'Testing', 'Button 3 was pressed'); Will demonstrate Button 2 being pressed
    EndSelect
    Wend

    [/autoit]

    wenn Du die compilietre EXE in einem anderen Ordner nutzen willst, musst Du wie von tweaky beschrieben die Dateien (Bilder) mit FileInstall in die exe compilieren.
    Diese werden dann bei Ausführung der exe in eine temp-Verzeichnis kopiert und von dort in die Buttons "geladen"

    siehe:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    Fileinstall("playgame.bmp", @TempDir & "\" & "playgame.bmp")
    Fileinstall("account.bmp", @TempDir & "\" & "account.bmp")
    Fileinstall("homepage.bmp", @TempDir & "\" & "homepage.bmp")
    GUICreate("My GUI Button") ; will create a dialog box that when displayed is centered

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

    $Button_1 = GUICtrlCreateButton ("Run Notepad", 10, 30, 183,71,$BS_BITMAP)
    GUICtrlSetImage (-1, @TempDir & "\" & "account.bmp")
    $Button_2 = GUICtrlCreateButton ( "Button Test", 10, 130, 183,71,$BS_Bitmap)
    GUICtrlSetImage (-1, @TempDir & "\" & "homepage.bmp")
    $Button_3 = GUICtrlCreateButton ( "Button Test", 10, 230, 183,71,$BS_Bitmap)
    GUICtrlSetImage (-1, @TempDir & "\" & "playgame.bmp")
    GUISetState () ; will display an dialog box with 2 button

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

    ; Run the GUI until the dialog is closed
    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $Button_1
    MsgBox(0, 'Testing', 'Button 1 was pressed') ; Will demonstrate Button 2 being pressed
    Case $msg = $Button_2
    MsgBox(0, 'Testing', 'Button 2 was pressed') ; Will demonstrate Button 2 being pressed
    Case $msg = $Button_3
    MsgBox(0, 'Testing', 'Button 3 was pressed') ; Will demonstrate Button 2 being pressed
    EndSelect
    Wend

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

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

    Einmal editiert, zuletzt von Schnuffel (23. Mai 2008 um 20:36)

  • ohh, thx
    vielen dank!

    aber jetzt hab ich ein prob, und zwar wird das bild bei $button1 nicht angezeigt X(

    Spoiler anzeigen
    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_icon=Launcher.ico
    #AutoIt3Wrapper_outfile=Launcher.exe
    #AutoIt3Wrapper_Allow_Decompile=n
    #AutoIt3Wrapper_Res_Comment=xxx
    #AutoIt3Wrapper_Res_Description=xxx
    #AutoIt3Wrapper_Res_Fileversion=1.0
    #AutoIt3Wrapper_Res_LegalCopyright=xxx
    #AutoIt3Wrapper_Res_Language=1031
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <GUIConstants.au3>
    #include <Process.au3>
    #include "Realmlist.au3"
    #include "WDB.au3"
    #include<ButtonConstants.au3>
    #include<GUIConstantsEx.au3>

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

    Fileinstall("playgame.bmp", @TempDir & "\" & "playgame.bmp")
    Fileinstall("account.bmp", @TempDir & "\" & "account.bmp")
    Fileinstall("homepage.bmp", @TempDir & "\" & "homepage.bmp")

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

    ProgressOn("UWoW Launcher","")
    ProgressSet(0,"Der Launcher wird geladen...")

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

    $INI = "webseite.de/Launcher.ini"
    ProgressSet(25)
    $NewsPage = IniRead($INI,"Launcher","Neuigkeiten","http://webseite.de/news.php")
    ProgressSet(45)
    $Game = IniRead($INI,"Launcher","EXE","WoWVz")
    ProgressSet(56)
    $AccountPage = IniRead($INI,"Launcher","Account erstellen","AccPage")
    ProgressSet(67)
    $ServerPage = IniRead($INI,"Launcher","Homepage","HomePage")
    ProgressSet(87)
    $Realmlist = IniRead($INI,"Launcher","ServerAdress","IP")
    ProgressSet(100)
    $WDB = IniRead($INI,"Launcher","WDB","WDBVz")
    ProgressSet(120)

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

    ProgressSet(0,"Der Launcher wird geladen...")

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

    $WoWForm1 = GUICreate("UWoW Launcher", 635, 543, 152, 113)
    ProgressSet(10)
    $Button1 = GUICtrlCreateButton("Spiel starten", 440, 456, 185, 73, $BS_BITMAP)
    GUICtrlSetImage (-1, @TempDir & "\" & "playgame.bmp")
    ProgressSet(23)
    $Button2 = GUICtrlCreateButton("Account erstellen", 224, 456, 185, 73, $BS_BITMAP)
    GUICtrlSetImage (-1, @TempDir & "\" & "account.bmp")
    ProgressSet(45)
    $Button3 = GUICtrlCreateButton("Zur Homepage", 8, 456, 185, 73, $BS_BITMAP)
    GUICtrlSetImage (-1, @TempDir & "\" & "homepage.bmp")
    ProgressSet(65)
    $Obj1 = ObjCreate("Shell.Explorer.2")
    ProgressSet(77)
    $Obj1_ctrl = GUICtrlCreateObj($Obj1, 0, 0, 634, 444)
    ProgressSet(89)
    $Obj1.navigate($NewsPage)
    ProgressSet(100)

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

    ProgressOff()
    GUISetState(@SW_SHOW)

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

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

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

    EndSwitch
    If $nMsg = $Button1 Then
    DeleteWDB($WDB)
    SetRealmlist($Realmlist)
    Run("WoWVz")
    Exit
    EndIf
    If $nMsg = $Button2 Then
    ;GUISetState(@SW_HIDE)
    $Obj1.navigate($AccountPage)
    ;GUISetState(@SW_SHOW)
    EndIf
    If $nMsg = $Button3 Then
    _RunDOS("start " & $ServerPage)
    EndIf
    WEnd

    [/autoit]
  • nachdem anscheinend §button2 und $button3 das Bild anzeigen, gehe ich von einem syntaktischen Fehler aus.
    z.B. Bitmap nicht im Verzeichnis, Dateireferenzierung falsch geschrieben, etc...

    Ich denke ein wenig musst Du dich schon selber dahinter setzen, um solche Fehler zu finden :)

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • ja^^ hab ich

    also die datei ist im ordner, richtig geschrieben auch,

    und da ich mich nicht so richtig auskenne, weiß ich nicht wo der fehler liegen könnte

  • Hi,
    also bei mir werden alle Buttons korrekt dargestellt.

    Bitte prüfe nochmals alles: richtiger Dateiname, richtige Endung, richtiges Verzeichnis
    und
    ändere es so ab

    [autoit]

    Fileinstall("playgame.bmp", @TempDir & "\" & "playgame.bmp", 1)

    [/autoit]


    Dann wird die Datei in den Temp Ordner kopiert UND bereits vorhandene Dateien überschrieben ;)

  • ich hab Deinen Code mal gekürzt, damit er bei mir lauffähig ist.

    Ich habe auf allen 3 Buttons das dem entsprechende Bild.
    D.h.: Fehler liegt außerhalb dieser Codezeilen :)

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    Fileinstall("playgame.bmp", @TempDir & "\" & "playgame.bmp")
    Fileinstall("account.bmp", @TempDir & "\" & "account.bmp")
    Fileinstall("homepage.bmp", @TempDir & "\" & "homepage.bmp")
    GUICreate("My GUI Button") ; will create a dialog box that when displayed is centered

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

    $WoWForm1 = GUICreate("UWoW Launcher", 635, 543, 152, 113)
    ProgressSet(10)
    $Button1 = GUICtrlCreateButton("Spiel starten", 440, 456, 185, 73, $BS_BITMAP)
    GUICtrlSetImage (-1, @TempDir & "\" & "playgame.bmp")
    ProgressSet(23)
    $Button2 = GUICtrlCreateButton("Account erstellen", 224, 456, 185, 73, $BS_BITMAP)
    GUICtrlSetImage (-1, @TempDir & "\" & "account.bmp")
    ProgressSet(45)
    $Button3 = GUICtrlCreateButton("Zur Homepage", 8, 456, 185, 73, $BS_BITMAP)
    GUICtrlSetImage (-1, @TempDir & "\" & "homepage.bmp")
    ProgressSet(65)
    $Obj1 = ObjCreate("Shell.Explorer.2")
    ProgressSet(77)
    $Obj1_ctrl = GUICtrlCreateObj($Obj1, 0, 0, 634, 444)
    ProgressSet(89)
    ProgressSet(100)

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

    ProgressOff()
    GUISetState(@SW_SHOW)

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

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

    [/autoit]

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • thx für die antworten!

    also ich hab den anzeigefehler so gelöst:

    die datei playgame.bmp in spielstarten.bmp umbenannt und im Quellcode geändert. Jetzt geht alles^^

    ich hab jetzt noch 2 fragen zum schluss:

    1. Wie ändere ich die Hintergrundfarbe hinter den Buttons? Hinter den Buttons ist ja ein weiß-grauer Hintergrund. Ich will den schwarz machen ^^

    2. Wie ändere ich die Größe des Fensters?

    Also nicht Hoch sondern Breit!

    [Blockierte Grafik: http://img3.imagebanana.com/img/ymw1gl1/launcherhoch.JPG] -> [Blockierte Grafik: http://img3.imagebanana.com/img/k8lch6xh/launcherlang.jpg]

  • Hi,
    die Hintergrundfarbe einer GUI kannst du so ändern

    [autoit]

    GUISetBkColor(0xE0FFFF) ; will change background color

    [/autoit]

    Die Größe der GUI musst du bei GUICreate einstellen.
    Lies dazu die deutsche Hilfe, steht alles schön sauber und deutlich drin ;)

  • Du musst die X und Y Koordinaten der Buttons und des IE-Objekts ändern, z.B. so:

    Spoiler anzeigen
    [autoit]

    $WoWForm1 = GUICreate("UWoW Launcher", 835, 444, 152, 113)
    ProgressSet(10)
    $Button1 = GUICtrlCreateButton("Spiel starten", 10, 10, 185, 73, $BS_BITMAP)
    GUICtrlSetImage (-1, "playgame.bmp")
    ProgressSet(23)
    $Button2 = GUICtrlCreateButton("Account erstellen", 10, 100, 185, 73, $BS_BITMAP)
    GUICtrlSetImage (-1, "account.bmp")
    ProgressSet(45)
    $Button3 = GUICtrlCreateButton("Zur Homepage", 10, 190, 185, 73, $BS_BITMAP)
    GUICtrlSetImage (-1, "homepage.bmp")
    ProgressSet(65)
    $Obj1 = ObjCreate("Shell.Explorer.2")
    ProgressSet(77)
    $Obj1_ctrl = GUICtrlCreateObj($Obj1, 200, 0, 634, 444)
    ProgressSet(89)
    $Obj1.navigate($NewsPage)
    ProgressSet(100)

    [/autoit]
  • okay, das hab ich jetzt kapiert, thx, aber jetzt will ich die seite rechts neben den buttons, aber wenn ich die buttons nach links verschiebe, dann ist die seite darüber.. ^^

    //Edit:

    Habs selber rausgefunden!^^

    [autoit]

    $Obj1_ctrl = GUICtrlCreateObj($Obj1, 0, 0, 634, 444)

    [/autoit]

    ich muss die beiden 0 verändern.

    thx leute für alles, geiles forum!

  • Fifth, du kannst auch so als vorschlag so wie ich dich verstanden habe, willst du ja das dein Button ein Bild ist oder?
    du kannst auch bilder als Button verwenden, ich zeig es dir in den unterem Script,

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("lol", 327, 256, 193, 125)
    $Button1 = GUICtrlCreateButton("(Not allowed)", 16, 8, 113, 73, $BS_ICON)
    GUICtrlSetImage(-1, @ScriptDir&"\Fantasy Trance1.ico", 0) ;Bild auf Button (Tipp verkleinere dann den Button) und es darf nur Icon format verwendet werden.
    $Pic1 = GUICtrlCreatePic(@ScriptDir&"\Fantasy Trance1.jpg", 48, 120, 257, 132, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    $Icon1 = GUICtrlCreateIcon(@ScriptDir&"\Fantasy Trance1.ico", 0, 256, 16, 32, 32, BitOR($SS_NOTIFY,$WS_GROUP))
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    MSGBOX (0, "lol", "Du hast den Button gedrückt") ;vereinzelte funktionen
    Case $Pic1
    MSGBOX (0, "lol", "Du hast das bild gedrückt")
    Case $Icon1
    MsgBox (0, "lol", "du hast das Icon gedrückt")
    EndSwitch
    WEnd

    [/autoit]


    autoit.de/wcf/attachment/2306/

    zu spät vllt hilft es ja jemanden

  • schon geklärt ^^

    trotzdem thx, dass du mir helfen wolltest!

    das mit Koda habe ich auch im TuT gesehen, habe es auch probiert, aber ich wusste nicht genau wie es geht und ich bzw wir waren gerade bei einer anderen lösung ^^