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
[hab schon gegoogled,leider fand ich kein tutorial dazu]
Wie benutzt man ein Slider ?!
-
- [ gelöst ]
-
FunH@cker -
27. April 2009 um 23:29 -
Geschlossen -
Erledigt
-
-
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 was ich sagen wollte ist wie bekomm ich z.b den Slider dazu das er z.b die Taskleiste oder ein fenster tranzparen machtSpoiler anzeigen
[autoit]#include <GUIConstants.au3>
[/autoit] [autoit][/autoit] [autoit]#Region ### START Koda GUI section ### Form=
[/autoit] [autoit][/autoit] [autoit]
$Form1 = GUICreate("Form1", 167, 65, 193, 125)
$Slider1 = GUICtrlCreateSlider(0, 8, 158, 45)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###While 1
[/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
ExitEndSwitch
[/autoit] [autoit][/autoit] [autoit][/autoit]
WEnd -
Vllt hilft dir das:
Spoiler anzeigen
[autoit]#include <GUIConstantsEx.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <SliderConstants.au3>
#include <WindowsConstants.au3>
#include <WinApi.au3>Opt("GuiOnEventMode",1)
[/autoit] [autoit][/autoit] [autoit]
; #GUI# =================================================================================
$Options = GUICreate("Options", 260, 110)
GUISetBkColor(0xFFFFFF)
GuiSetOnEvent($GUI_EVENT_CLOSE, "_Exit")GUICtrlCreateGroup("Transparency", 15, 15, 230, 70)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$label = GUICtrlCreateLabel("Transparency = 100%", 23, 37, -1 ,20)
$slider = GUICtrlCreateSlider(23, 57, 200, 20, BitOR($TBS_AUTOTICKS, $WS_BORDER))
GUICtrlSetData($slider, 100)GUISetState()
[/autoit] [autoit][/autoit] [autoit]GUIRegisterMsg($WM_HSCROLL, "WM_HVSCROLL")
[/autoit] [autoit][/autoit] [autoit]; #MAIN LOOP# ============================================================================
[/autoit] [autoit][/autoit] [autoit]
While 1
sleep(100)
WEnd; #FUNCTIONS# ============================================================================
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
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_HVSCROLLFunc _Exit()
[/autoit]
Exit
EndFunc -
Vllt hilft dir das:
Spoiler anzeigen
[autoit]#include <GUIConstantsEx.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <SliderConstants.au3>
#include <WindowsConstants.au3>
#include <WinApi.au3>Opt("GuiOnEventMode",1)
[/autoit] [autoit][/autoit] [autoit]
; #GUI# =================================================================================
$Options = GUICreate("Options", 260, 110)
GUISetBkColor(0xFFFFFF)
GuiSetOnEvent($GUI_EVENT_CLOSE, "_Exit")GUICtrlCreateGroup("Speed", 15, 15, 230, 70)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$label = GUICtrlCreateLabel("Speed = 100%", 23, 37, -1 ,20)
$slider = GUICtrlCreateSlider(23, 57, 200, 20, BitOR($TBS_AUTOTICKS, $WS_BORDER))
GUICtrlSetData($slider, 100)GUISetState()
[/autoit] [autoit][/autoit] [autoit]GUIRegisterMsg($WM_HSCROLL, "WM_HVSCROLL")
[/autoit] [autoit][/autoit] [autoit]; #MAIN LOOP# ============================================================================
[/autoit] [autoit][/autoit] [autoit]
While 1
sleep(100)
WEnd; #FUNCTIONS# ============================================================================
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
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, "Speed = " & GUICtrlRead($slider)&"%")
WinsetTrans("Options", "", GUICtrlRead($slider) * 2.55)
EndSwitch
EndFunc ;==>WM_HVSCROLLFunc _Exit()
[/autoit]
Exit
EndFuncWas machst du das so kompliziert?
Hier ein ganz einfaches Beispiel:
Spoiler anzeigen
[autoit]#include <GUIConstants.au3>
[/autoit]
#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 -
Was machst du das so kompliziert?
Damit ers direkt richtig lernt
-
Hallo @Commander21,
Ich habe dein Beispiel etwas angepasst, damit es mit der erzeugten GUI sofort funktioniert
Spoiler anzeigen
[autoit]#include <GUIConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("TransGui", 167, 65, 193, 125)
$Slider1 = GUICtrlCreateSlider(0, 8, 158, 45)GUICtrlSetLimit (-1, 254, 20) Limit verändert, damit man die Chance hat den Slider "anzufassen"
[/autoit]
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@ChaosKeks, deine Lösung funktioniert sofort ,
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
-
- Offizieller Beitrag
autoBert: Ein paar kleine Änderungen würde ich auch noch vorschlagen:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstantsEx.au3>
#include <SliderConstants.au3>$Form1 = GUICreate("TransGui", 270, 65)
[/autoit] [autoit][/autoit] [autoit]
$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 setzenWhile 1
[/autoit]
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
- 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
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]
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstantsEx.au3>
#include <SliderConstants.au3>$Form1 = GUICreate("TransGui", 270, 120)
[/autoit] [autoit][/autoit] [autoit]
$Slider1 = GUICtrlCreateSlider(10, 10, 250, 45, BitOR($TBS_TOOLTIPS, $TBS_AUTOTICKS))
GUICtrlSetLimit(-1, 100, 0)
$Progress = GUICtrlCreateProgress(10, 60, 250, 25)
GUISetState(@SW_SHOW)While 1
[/autoit]
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
Case $Slider1
$Read = GUICtrlRead($Slider1) ; Ließt den aktuellen wert des Sliders aus.
GUICtrlSetData($Progress, $Read)
EndSwitch
WEndEdit: 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
-
- Offizieller Beitrag
Dazu musst Du Dein Script genau analysieren. Zu welchem Zeitpunkt wieviel Prozent von dem Script abgearbeitet ist und an der Stelle fügst Du dann...
[autoit]GuiCtrlSetData($Progress, x) ; x steht für einen Prozentwert
[/autoit]
...in das Script ein. -
Nein, das geht auch ganz leicht.
[autoit]
[/autoit]
$progress = GUICtrlCreateProgress(10, 10, 200, 20)
GUICtrlSetData($progress, 100) ;setzt die Progressbar auf z.B. 100%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
-
ok nach ein Paar versuchen hab ichs geschaft es laufen zu lassen
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
-
- Offizieller Beitrag
[autoit]WinSetOnTop
[/autoit] -
[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
-
- Offizieller Beitrag
Nein, WinSetOnTop setzt das Fenster solange in den Vordergrund bis Du das wieder rückgängig machst.
$WS_EX_TOPMOST ist lediglich dazu da, dass man das Fenster gleich beim erstellen immer in den Vordergrund packen kann. -
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.
-
- Offizieller Beitrag
Was du bschreibst, tut
[autoit]WinActivate
[/autoit]Ausprobieren hilft :D.
peethebee
-