Hintergrundbild

  • Anfrage:
    Wie bekommt man ein Hintergrundbild in Autoit und auf dem Hintergrund müssen Buttons funktionieren?
    Wie funktionieren farbige Buttons in AutoIt?
    MfG
    moppel

    • Offizieller Beitrag

    Hallo und :welcome:!

    Du kannst ein Pic-Control in voller Größe aufziehen auf deiner GUI aufziehen. Hintergrundbild geht per se nicht bisher.
    Wenn du den Stil setzt, der das Pic in den HIntergrund schiebt (siehe HIlfe)), dann kannst du darauf auch BUttons platzieren, die klickbar sind.
    Farbige Buttons erstellt GUICTRLSetBkColor bzw. GUICtrlSetColor.

    peethebee

  • Hi,
    das war ja eine tolle Überraschung! Ich habe für FreeScore extra Bildchen
    gemacht, damit ich bunte Buttons habe..
    Und dann lese ich, daß das ganz einfach geht. Den Tipp habe ich mir sofort
    gezogen, damit ich es ausprobieren kann, wenn ich wieder zu Hause bin..
    Dumm gelaufen, denn selbst in der neuesten Beta kann AutoIt KEINE bunten
    Buttons erstellen(Wobei es mir mehr um die Buttonfarbe geht!)
    In welcher Version funktioniert das denn nun ? :rofl2:
    Gruß
    ytwinky

    (Ich) benutze stets die aktuelle (Beta) und SciTE..

    • Offizieller Beitrag

    Hallo!

    Ich muss micht entschuldigen. Beschwingt von dem Eindruck, dass man inzwischen sogar Listviews einfärben kann (!), hatte ich vermutet, dass das auch mit Buttons gehen sollte.
    Meine Tests mit Beta 3.1.1.126 führten zu dem gleichen Ergebnis wie die von ytwinky.

    Und es geht (natürlich?) doch!
    http://www.autoitscript.com/forum/index.php?showtopic=25516&hl=

    peethebee

  • Okay, funzt solala..
    ..aber richtige Buttons sind das nicht..
    Eine mögliche Bezeichnung wäre: Eingefärbter GUI-Bereich, der eine Aktion meldet..
    Vielleicht gibt es ja Möglichkeiten?
    Gruß
    ytwinky

    (Ich) benutze stets die aktuelle (Beta) und SciTE..

  • öh die möglichkeit wäre das evtl mit guictrlcreatepic zu machen
    gestaltest halt einfach die bilder so wie die Knöpfe sind und benutzt die
    dann
    am besten 3 eins ohne Focus und nicht gedrückt eins gedrückt und eins
    nicht gedrückt mit focus

    • Offizieller Beitrag

    Hallo!

    Es geht wohl mit der Beta. Undzwar mit GUIRegisterMsg, wenn man da in den code guckt, sieht man da Colorierte Buttons, hier das Example;

    Spoiler anzeigen
  • Den Hintergrund habe ich hinbekommen - ok
    Die Button wollen nicht und das Script von gtaspider bringt leider eine Fehlermeldung, siehe Anhang. Das gleiche kommt nach deaktivierung mit den anderen Case-Befehlen

    • Offizieller Beitrag

    Hallo!

    Am besten du postest mal dein Skript. Aber laut Fehlermeldung hast du mehr EndSelects als Selects, du bruachst für die Messageverarbeitung jeweils genau eines, hast aber vermutlich entweder 2x Endselect oder 0x Select. Oder das Endselect kommt vor dem letzten Case...

    peethebee

  • Zitat

    Original von peethebee
    Hallo und :welcome:!

    Du kannst ein Pic-Control in voller Größe aufziehen auf deiner GUI aufziehen. Hintergrundbild geht per se nicht bisher.
    Wenn du den Stil setzt, der das Pic in den HIntergrund schiebt (siehe HIlfe)), dann kannst du darauf auch BUttons platzieren, die klickbar sind.
    Farbige Buttons erstellt GUICTRLSetBkColor bzw. GUICtrlSetColor.

    peethebee

    Wie genau kann man ein Bild in den Hintergrund schicken? Hab schon die ganzen Styles abegklappert in der Hilfe und wurde nicht fündig :/.

    Ich habe ein 2tes Fenster mit dem Namen SubGUI, aufdem ein paar Buttons mit Funktionen sind, ein paar Text eingabe Felder mit Funktionen und ein Bild, dass genau so gross ist wie das Fenster, was das Design des SubGUI's darstellen soll. Nur wird nun 1. das Bild nicht angezeigt und 2. (es wurde einmal angezeigt) kann man nicht auf die Eingabefelder & Buttons klicken (ich habs schon mit $WS_EX_LAYERED versucht, komm aber leider nicht draus wie ich die Eigenschaft verwenden soll). Auf meinem Desktop des Benutzers ist die Datei "SubGUI.ico", die ich als Hintergrundbild verwenden möchte.

    Der Code für meinen SubGUI:

    Ein weiteres Problem, dass ich noch nicht verstehe ist, wenn ich in einer Funktion If und Else benützte, funktioniert es einfach nicht. Ich möchte eigentlich, dass nur wenn der Wert $hmail 0 ist, der Mausklick in der Funktion ausgeführt wird. Doch dieser Mausklick macht es auch nicht wenn der Wert 0 ist.

    Code
    Func TestButton()
      If $hmail = 0 Then
      MouseClick("left", 627, 566, 1)
      ElseIf $hmail = 1 Then
      Sleep(1)
    EndFunc
      EndIf

    Danke schonmal im Vorraus :) .

    4 Mal editiert, zuletzt von Deadman (24. Oktober 2006 um 21:07)

  • 1.
    Func TestButton()
    2.
    If $hmail = 0 Then
    3.
    MouseClick("left", 627, 566, 1)
    4.
    ElseIf $hmail = 1 Then
    5.
    Sleep(1)
    6.
    EndFunc
    7.
    EndIf

    _________________________________________

    [autoit]


    Func TestButton()

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

    If $hmail = 0 Then

    MouseClick("left", 627, 566, 1)

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

    Else

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

    Exit

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

    EndIf

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

    EndFunc

    [/autoit]

    Sollte gehen :)
    Funtzt bei mir tadellos, also meine variante

  • Hallo!

    hab da auch was gefunden zu farbigen Button.

    Spoiler anzeigen

    #include <GUIConstants.au3>

    GUICreate("test",300,100)
    $a = _GUICtrlCreateColorButton("test1", 5, 5, 50, 20, 0xff0000)
    $b = _GUICtrlCreateColorButton("test2", 65, 5, 50, 20, 0x00ff00)
    $c = _GUICtrlCreateColorButton("test3", 125, 5, 50, 20, 0x0000ff,0xffffff)
    $d = _GUICtrlCreateColorButton("test4", 185, 5, 50, 20, 0xffff00)
    $e = _GUICtrlCreateColorButton("test5", 245, 5, 50, 20, 0xffffff)
    $f = _GUICtrlCreateColorButton("test6", 5, 35, 50, 20,0xffaa00)
    $g = _GUICtrlCreateColorButton("test7", 65, 35, 50, 20,0xaaff00)
    $h = _GUICtrlCreateColorButton("test8", 125, 35, 50, 20,0x00aaff,0xffffff)
    $i = _GUICtrlCreateColorButton("test9", 185, 35, 50, 20,0xffffaa)
    $j = _GUICtrlCreateColorButton("test10",245, 35, 50, 20,0xdddddd)
    $k = _GUICtrlCreateColorButton("test11", 5, 65, 50, 20,0xffee00)
    $l = _GUICtrlCreateColorButton("test12", 65, 65, 50, 20,0xccff00)
    $m = _GUICtrlCreateColorButton("test13",125, 65, 50, 20,0x00ddff,0xffffff)
    $n = _GUICtrlCreateColorButton("test14",185, 65, 50, 20,0xffeedd)
    $o = _GUICtrlCreateColorButton("test15",245, 65, 50, 20,0x000000,0xffffff)
    GUISetState ()

    do
    $msg = GUIGetMsg()
    if $msg = $a[0] then msgbox(0, "colorbutton pressed","You pressed cb1",1)
    if $msg = $b[0] then msgbox(0, "colorbutton pressed","You pressed cb2",1)
    if $msg = $c[0] then msgbox(0, "colorbutton pressed","You pressed cb3",1)
    if $msg = $d[0] then msgbox(0, "colorbutton pressed","You pressed cb4",1)
    if $msg = $e[0] then msgbox(0, "colorbutton pressed","You pressed cb5",1)
    if $msg = $f[0] then msgbox(0, "colorbutton pressed","You pressed cb6",1)
    if $msg = $g[0] then msgbox(0, "colorbutton pressed","You pressed cb7",1)
    if $msg = $h[0] then msgbox(0, "colorbutton pressed","You pressed cb8",1)
    if $msg = $i[0] then msgbox(0, "colorbutton pressed","You pressed cb9",1)
    if $msg = $j[0] then msgbox(0,"colorbutton pressed","You pressed cb10",1)
    if $msg = $k[0] then msgbox(0,"colorbutton pressed","You pressed cb11",1)
    if $msg = $l[0] then msgbox(0,"colorbutton pressed","You pressed cb12",1)
    if $msg = $m[0] then msgbox(0,"colorbutton pressed","You pressed cb13",1)
    if $msg = $n[0] then msgbox(0,"colorbutton pressed","You pressed cb14",1)
    if $msg = $o[0] then msgbox(0,"colorbutton pressed","You pressed cb15",1)
    until $msg = $GUI_EVENT_CLOSE

    ;#include-once
    ;=============================================================================
    ;
    ; Function Name: _GUICtrlCreateColorButton()
    ;
    ; Description: Creates a colored Button
    ;
    ; Syntax: _GUICtrlCreateColorButton($text, $left, $top, $width, $height,$bkcolor[,$fontcolor])
    ;
    ; Parameter(s); $text = The text of the control
    ; $left = The left side of the control
    ; $top = The top of the control
    ; $width = The width of the control
    ; $height = The height of the control
    ; $bkcolor = Backgroundcolor of the control
    ; $fontcolor = [optional] Fontcolor of the control
    ;
    ; Return Value(s): array[1] = used to change colors
    ; array[0] = notifies GUIGetMsg if user clicks
    ;
    ; Author: rakudave <rakudave@gmx.net>
    ;=============================================================================


    Func _GUICtrlCreateColorButton($text, $left, $top, $width, $height,$bkcolor,$fontcolor = 0x000000)
    local $colbut[2]
    $colbut[0] = GUICtrlCreateLabel("",$left,$top,$width,$height,$SS_BLACKRECT)
    GUICtrlCreateLabel("",$left,$top,$width -1,$height -1,$SS_WHITERECT)
    GUICtrlCreateLabel("",$left +1,$top +1,$width -2,$height -2,$SS_GRAYRECT)
    $colbut[1] = GUICtrlCreateLabel($text,$left +1,$top + 1,$width -3,$height -3,$SS_NOTIFY & $SS_CENTER)
    GUICtrlSetBkColor(-1,$bkcolor)
    GUICtrlSetColor(-1,$fontcolor)
    Return $colbut
    EndFunc

    Einmal editiert, zuletzt von weedhead (24. Oktober 2006 um 22:38)

  • Also wenn ich das für meine Funktion umschreibe sieht das ja so aus:

    Nur Schliesst das Programm automatisch, egal ob ich 0 oder 1 als wert beim Feld für $hmail eingegeben habe. Also ignoriert es irgentwie If und geht gleich zur Else-Variante über. :/

    Einmal editiert, zuletzt von Deadman (24. Oktober 2006 um 23:10)

  • langsam^^

    du hast den code:

    [autoit]

    #
    SubGUI:

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

    #
    $SubGUI = GUICreate("Create a Habbo", 380, 609, 250, 500, $WS_EX_LAYERED)

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

    #
    GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSE2Clicked")

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

    #

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

    #
    ; SubGUI - Create a Habbo Button:

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

    #
    $create2 = GUICtrlCreateButton("OK", 177, 551, 25, 14)

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

    #
    GUICtrlSetOnEvent($create2, "CREATE2Button")

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

    #

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

    #
    GUICtrlCreatePic(@DesktopDir & "\SubGUI.ico",0,0, 380,609)

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

    #

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

    #
    ; SubGUI - Input Field:

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

    #
    $name = GUICtrlCreateInput ( "", 34, 58, 145, 30 )

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

    #

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

    #
    ;SubGUI Close Button Function:

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

    #
    Func CLOSE2Clicked()

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

    #
    Exit

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

    #
    EndFunc

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

    #

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

    #
    ; SubGUI - Create a Habbo Function:

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

    #
    Func CREATE2Button()

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

    #
    Send(GUICtrlRead($name))

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

    #
    EndFunc

    [/autoit]

    Stimmt?

    Also ich finde da kein $hmail ..

    Naja trozdem, ich hab es so gemacht:


    [autoit]

    Global $hmail = 0
    Func TestButton()
    If $hmail = 0 Then
    MouseClick("left", 627, 566, 1)
    Else
    Exit
    EndIf
    EndFunc

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

    TestButton()

    [/autoit]

    Das funtzt bei mir super, vll wird $hmail nicht richtig auf 0 gesetzt?

    Mach mal in deine Funktion, kurz bevor er den MouseClick machen sollte, ein:


    MsgBox(0, "", $hmail)

    Wenn der WErt 1 ist, dann weisst du was das problem ist :D

    Wenn er 0 ist, sollte er eigentlich den Mouseclick machen :D

    Einmal editiert, zuletzt von huggy (25. Oktober 2006 um 21:10)

  • Ich weiß nicht ob meine Antwort hierher passt. Und zwar ich würde das so machen:

    [autoit]


    GUICtrlCreatePic("Background.jpg", 0, 0, 1024, 768)
    GUICtrlSetState(-1, $GUI_DISABLE)

    [/autoit]