Wie benutzt man ein Slider ?!

  • Hi an alle hab gesehen das es beim Koda Form deigner eine Slider funktion gibt
    so ich als autoit anfänger breucht da ma hilfe ^^
    und wollte fragen ob mir das nicht jemand erkärt,wie ich ein Slider {leicht} in meine pogramme einbinden kan z.B Tranzparenz
    ewentuel mit beschreibung :D
    [hab schon gegoogled,leider fand ich kein tutorial dazu]

    Einmal editiert, zuletzt von FunH@cker (28. April 2009 um 12:55)

  • Hallo FunH@cker,

    einen Slider benutzt man, indem man ihn mit der Maus anfasst, und ihn dann auf den gewünschten Wert stellt ;) . Hier ein Beispiel aus der Hilfe

    Spoiler anzeigen
    [autoit]

    FunH@cker

    [/autoit]

    Das ganze musst dann umsetzen für die Transparenz, schau doch einfach mal hier von @Commander21,

    mfg (Auto)Bert

  • Zitat

    einen Slider benutzt man, indem man ihn mit der Maus anfasst, und ihn dann auf den gewünschten Wert stellt


    hab etwas dumm formuliert :D was ich sagen wollte ist wie bekomm ich z.b den Slider dazu das er z.b die Taskleiste oder ein fenster tranzparen macht

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 167, 65, 193, 125)
    $Slider1 = GUICtrlCreateSlider(0, 8, 158, 45)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

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

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

    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit][/autoit]
  • Vllt hilft dir das:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <SliderConstants.au3>
    #include <WindowsConstants.au3>
    #include <WinApi.au3>

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

    Opt("GuiOnEventMode",1)
    ; #GUI# =================================================================================
    $Options = GUICreate("Options", 260, 110)
    GUISetBkColor(0xFFFFFF)
    GuiSetOnEvent($GUI_EVENT_CLOSE, "_Exit")

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

    GUICtrlCreateGroup("Transparency", 15, 15, 230, 70)
    $label = GUICtrlCreateLabel("Transparency = 100%", 23, 37, -1 ,20)
    $slider = GUICtrlCreateSlider(23, 57, 200, 20, BitOR($TBS_AUTOTICKS, $WS_BORDER))
    GUICtrlSetData($slider, 100)

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

    GUISetState()

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

    GUIRegisterMsg($WM_HSCROLL, "WM_HVSCROLL")

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

    ; #MAIN LOOP# ============================================================================
    While 1
    sleep(100)
    WEnd

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

    ; #FUNCTIONS# ============================================================================
    Func WM_HVSCROLL($hwnd, $iMsg, $wParam, $lParam) ; Slider
    Local $hWndFrom, $iCode
    If Not IsHWnd($Slider) Then $hWndCombo1 = GUICtrlGetHandle($Slider)
    $hWndFrom = $lParam
    $iCode = _WinAPI_HiWord ($wParam)
    Switch $hWndFrom
    Case $Slider, $hWndCombo1
    GUICtrlSetData($label, "Transparency = " & GUICtrlRead($slider)&"%")
    WinsetTrans("Options", "", GUICtrlRead($slider) * 2.55)
    EndSwitch
    EndFunc ;==>WM_HVSCROLL

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

    Func _Exit()
    Exit
    EndFunc

    [/autoit]

    Einmal editiert, zuletzt von ChaosKeks (28. April 2009 um 00:24)


  • Was machst du das so kompliziert?

    Hier ein ganz einfaches Beispiel:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 167, 65, 193, 125)
    $Slider1 = GUICtrlCreateSlider(0, 8, 158, 45)
    GUICtrlSetLimit (-1, 254, 0)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    $Read = GUICtrlRead ($Slider1) ; Ließt den aktuellen wert des Sliders aus.
    WinSetTrans ("Titel oder Handle", "Text", $Read) ; Setzt immer wieder die Transparenz eines Fensters ( "Titel" angeben, z.B: "Editor - Unbenannt", "" ( "Text" brauchst du net unbedingt angeben.))
    WEnd

    [/autoit]
  • Hallo @Commander21,

    Ich habe dein Beispiel etwas angepasst, damit es mit der erzeugten GUI sofort funktioniert

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("TransGui", 167, 65, 193, 125)
    $Slider1 = GUICtrlCreateSlider(0, 8, 158, 45)

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

    GUICtrlSetLimit (-1, 254, 20) Limit verändert, damit man die Chance hat den Slider "anzufassen"
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    $Read = GUICtrlRead ($Slider1) ; Ließt den aktuellen wert des Sliders aus.
    WinSetTrans ("TransGui", "", $Read) ; Setzt immer wieder die Transparenz eines Fensters ( "Titel" angeben, z.B: "Editor - Unbenannt", "" ( "Text" brauchst du net unbedingt angeben.)) ;jetz aktueller Fenstertitel
    WEnd

    [/autoit]

    @ChaosKeks, deine Lösung funktioniert sofort :thumbup: ,
    ist aber für einen Anfänger vielleicht doch zu kompiziert :?: ,

    Edit1: @FunH@cker hab mich gerade an ein Beispiel erinnert, das ich auf AutoItScript.com gefunden habe, Autor ist mir leider unbekannt. (ähnlich Hardcore, wie ChaosKeks Beispiel) Der Autor dieses Skripts legt den Begriff Transpararent in Bezug auf ein eingebettes Bild aus: autoit.de/wcf/attachment/4564/

    mfg (Auto)Bert

    Einmal editiert, zuletzt von AutoBert (28. April 2009 um 01:45)

    • Offizieller Beitrag

    autoBert: Ein paar kleine Änderungen würde ich auch noch vorschlagen:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <SliderConstants.au3>

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

    $Form1 = GUICreate("TransGui", 270, 65)
    $Slider1 = GUICtrlCreateSlider(10, 10, 250, 45, BitOR($TBS_TOOLTIPS, $TBS_AUTOTICKS))
    GUICtrlSetLimit(-1, 255, 80) ; Limit verändert, damit man die Chance hat den Slider "anzufassen"
    GUISetState(@SW_SHOW)
    WinSetTrans($Form1, "", 80) ; Anfangswert setzen

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

    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Slider1
    $Read = GUICtrlRead($Slider1) ; Ließt den aktuellen wert des Sliders aus.
    WinSetTrans($Form1, "", $Read) ; Setzt die Transparenz eines Fensters
    EndSwitch
    WEnd

    [/autoit]


    - Anfangswert einfach vor der Schleife setzen.
    - Abfrage des Sliders in eine Case-Anweisung
    - $TBS_TOOLTIPS damit man den eingestellten Wert sehen kann
    - WinSetTrans funktioniert auch mit dem Handle des Fensters

  • Ich glaube das ichs jetz so halpwegs kann mit dem Slider :D
    kann ich das gleiche auch mit einem lade balken machen oder ist das wieder was anderes :?:

    • Offizieller Beitrag

    Meinst Du mit "lade balken" eine Progressbar?
    Dann so:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <SliderConstants.au3>

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

    $Form1 = GUICreate("TransGui", 270, 120)
    $Slider1 = GUICtrlCreateSlider(10, 10, 250, 45, BitOR($TBS_TOOLTIPS, $TBS_AUTOTICKS))
    GUICtrlSetLimit(-1, 100, 0)
    $Progress = GUICtrlCreateProgress(10, 60, 250, 25)
    GUISetState(@SW_SHOW)

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

    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Slider1
    $Read = GUICtrlRead($Slider1) ; Ließt den aktuellen wert des Sliders aus.
    GUICtrlSetData($Progress, $Read)
    EndSwitch
    WEnd

    [/autoit]

    Edit: Irgendwas stimmt hier mit dem Thread nicht. Der ganze Aufbau ist "zerstört".
    @FunH@cker: kannst Du mal die Spoiler aus Deiner Sig entfernen. Ich habe den Verdacht, dass das damit zusammenhängt.

  • Genau ein Lade Balken der sich zwar nicht von einem Slider bewegen läst sonder anzeigt wie weit das skript in der ausführung ist :) odersoo oder ist das sehr kompliziert :?:

  • Nein, das geht auch ganz leicht.


    [autoit]


    $progress = GUICtrlCreateProgress(10, 10, 200, 20)
    GUICtrlSetData($progress, 100) ;setzt die Progressbar auf z.B. 100%

    [/autoit]

    Wenn du das ganze noch in einem schönen Fenster haben möchtest, kannst du ProgressOn nehmen, was dir dann ein konfigurierbares Progressbarfenster anzeigt.

    Edit: zuspät :P

  • ok nach ein Paar versuchen hab ichs geschaft es laufen zu lassen :rock:
    jetz noch eine ledzte frage : wie kann ich z.b ein Gui immer im fordergrund behalten ?

  • Ist schon in einem Thread hier eben genannt worden aber hier: $WS_EX_TOPMOST als extended style verwenden

  • [autoit]

    WinSetOnTop

    [/autoit]

    Setzt das Fenster aber nur einmalig in den Vordergrund. Besser ist da $WS_EX_TOPMOST geeignet.

    Kommt natürlich auch daruf an, was man machen will ^^

  • WinSetOnTop setzt das Fenster doch nur solange in den Fordergrund, bis man ein anderes Fenster anklickt.
    Wenn man aber will, dass es immer in Vordergrund is, muss man diesen Ex-Style setzen.

    Da lieg ich doch richtig oda?
    Denke schon...

    Und auserdem muss man $WS_EX_TOPMOST ja nicht gleich an den anfang setzen. sondern es mit GUICtrlSetStyle setzen.