If.....

  • Erstens ist der Horizont von Autoit alles andere als grenzenlos.. Zweitens hab ich euch mal eure drag-Func gefixt.. finde es so einfacher zu bedienen!

    Spoiler anzeigen
    [autoit]

    #Include <Misc.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <SliderConstants.au3>

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

    Opt('MouseCoordMode', 0)
    Opt("GUIOnEventMode", 1)
    Global $Pos_M2 = MouseGetPos(), $pic
    Dim $sPic[1]

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

    $hGUI = GUICreate("Transparent", 575, 510, Default, Default, BitOR($WS_MINIMIZEBOX, $WS_MAXIMIZEBOX, $WS_SIZEBOX), $WS_EX_ACCEPTFILES)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Ex")
    $insert = GuiCtrlCreateButton("Insert Pic" ,10,10)
    GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKBOTTOM + $GUI_DOCKHEIGHT)
    GuiCtrlSetOnEvent(-1, "_insert")
    $delete = GuiCtrlCreateButton("Delete Pic" ,70,10)
    GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKBOTTOM + $GUI_DOCKHEIGHT)
    GuiCtrlSetOnEvent(-1, "_Delete")
    $label = GUICtrlCreateLabel("Transparence = 0%", 30, 437, -1, 14)
    GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKBOTTOM + $GUI_DOCKHEIGHT)
    $slider = GUICtrlCreateSlider(10, 457, 144, 20, BitOR($TBS_AUTOTICKS, $WS_BORDER))
    GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKBOTTOM + $GUI_DOCKHEIGHT)
    WinSetTrans("Transparent", "", 255 - GUICtrlRead($slider) * 2.55)
    GUICtrlCreatePic("", -10, -10)
    Dim $Acc[2][2] = [["^i", $insert], ["^d", $delete]]
    GUISetAccelerators($Acc)
    GUISetState(@SW_SHOW)
    GUIRegisterMsg($WM_HSCROLL, "WM_HVSCROLL")
    While 1
    sleep(10)
    WEnd

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

    Func _insert()
    $bild = FileOpenDialog("Wählen Sie eine Datei aus!", @DesktopDir & "\", "Bilder (*.jpg;*.bmp)", 1 + 4 )
    If $bild = "" Or @error Then return
    GUICtrlCreatePic($bild, 150, 150)
    GuiCtrlSetOnEvent(-1, "_DragMe")
    EndFunc

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

    Func _delete()
    GuiCtrlDelete($pic)
    EndFunc

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

    Func _DragMe()
    Global $hGui = @GUI_WINHANDLE
    $pic = @GUI_CTRLID
    Local $Pos_C, $Pos_M, $Pos_M2, $Opt_old
    Local $dll = DllOpen("user32.dll")
    $Pos_C = ControlGetPos($hGui, "", $pic)
    $Pos_M = MouseGetPos()
    $Pos_W = WinGetPos($hGui)
    $x_Offset = $Pos_M[0] - $Pos_C[0]
    $y_Offset = $Pos_M[1] - $Pos_C[1]
    While _IsPressed('01', $dll)
    $Pos_M = MouseGetPos()
    If $Pos_M <> $Pos_M2 Then
    GUICtrlSetPos($pic,$Pos_M[0] - $x_Offset, $Pos_M[1] - $y_Offset)
    sleep(10)
    EndIf
    $Pos_M = $Pos_M2
    sleep(50)
    While _IsPressed('11', $dll)
    $Pos_C = ControlGetPos($hGui, "", $pic)
    _MouseTrap($Pos_C[0]+$Pos_W[0],$Pos_C[1]+$Pos_W[1],$Pos_W[2]+$Pos_W[0],$Pos_W[3]+$Pos_W[1])
    $Pos_M = MouseGetPos()
    GUICtrlSetPos($pic, $Pos_C[0], $Pos_C[1], $Pos_M[0]-$Pos_C[0], $Pos_M[1]-$Pos_C[1])
    sleep(10)
    WEnd
    WEnd
    DllClose($dll)
    _MouseTrap()
    EndFunc

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

    Func WM_HVSCROLL($hwnd, $iMsg, $wParam, $lParam)
    Local $hWndFrom, $iCode
    If Not IsHWnd($slider) Then $hWndCombo1 = GUICtrlGetHandle($slider)
    $hWndFrom = $lParam
    $iCode = _WinAPI_HiWord($wParam)
    Switch $hWndFrom
    Case $slider, $hWndCombo1
    GUICtrlSetData($label, "Transparence = " & GUICtrlRead($slider) & "%")
    WinSetTrans("Transparent", "", 255 - GUICtrlRead($slider) * 2.55)
    EndSwitch
    EndFunc

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

    Func _Ex()
    Exit
    EndFUnc

    [/autoit]
  • weißt du was dein problem ist - du machst nicht das was ich dir sage... ich klinke mich jetz hier aus, dass wird mir zu doof

    @ChaosKeks: das ist schöner, da hast du recht... wollte ihm eigentlich nur n anstoß geben wie man sowas machen kann und erst gar keinen code posten weil er wollte ja was lernen und das tut er so definitiv nicht...

  • Hmm weiß nich ob er durch die Beispiele was lernt oder nicht.. aber mir wird das auch langsam zu stressig den Thread zu beobachten :pinch:
    Hab noch ebn den Offset mit eingefügt und bin fürs erste auch mal draußen!

    Spoiler anzeigen
    [autoit]

    #Include <Misc.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <SliderConstants.au3>

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

    Opt('MouseCoordMode', 0)
    Opt("GUIOnEventMode", 1)
    Global $Pos_M2 = MouseGetPos(), $pic
    Dim $sPic[1]

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

    $hGUI = GUICreate("Transparent", 575, 510, Default, Default, BitOR($WS_MINIMIZEBOX, $WS_MAXIMIZEBOX, $WS_SIZEBOX), $WS_EX_ACCEPTFILES)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Ex")
    $insert = GuiCtrlCreateButton("Insert Pic" ,10,10)
    GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKBOTTOM + $GUI_DOCKHEIGHT)
    GuiCtrlSetOnEvent(-1, "_insert")
    $delete = GuiCtrlCreateButton("Delete Pic" ,70,10)
    GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKBOTTOM + $GUI_DOCKHEIGHT)
    GuiCtrlSetOnEvent(-1, "_Delete")
    $label = GUICtrlCreateLabel("Transparence = 0%", 30, 437, -1, 14)
    GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKBOTTOM + $GUI_DOCKHEIGHT)
    $slider = GUICtrlCreateSlider(10, 457, 144, 20, BitOR($TBS_AUTOTICKS, $WS_BORDER))
    GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKBOTTOM + $GUI_DOCKHEIGHT)
    WinSetTrans("Transparent", "", 255 - GUICtrlRead($slider) * 2.55)
    GUICtrlCreatePic("", -10, -10)
    Dim $Acc[2][2] = [["^i", $insert], ["^d", $delete]]
    GUISetAccelerators($Acc)
    GUISetState(@SW_SHOW)
    GUIRegisterMsg($WM_HSCROLL, "WM_HVSCROLL")
    While 1
    sleep(10)
    WEnd

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

    Func _insert()
    $bild = FileOpenDialog("Wählen Sie eine Datei aus!", @DesktopDir & "\", "Bilder (*.jpg;*.bmp)", 1 + 4 )
    If $bild = "" Or @error Then return
    GUICtrlCreatePic($bild, 150, 150)
    GuiCtrlSetOnEvent(-1, "_DragMe")
    EndFunc

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

    Func _delete()
    GuiCtrlDelete($pic)
    EndFunc

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

    Func _DragMe()
    Global $hGui = @GUI_WINHANDLE
    $pic = @GUI_CTRLID
    Local $Pos_C, $Pos_M, $Pos_M2, $Opt_old
    Local $dll = DllOpen("user32.dll")
    $Pos_C = ControlGetPos($hGui, "", $pic)
    $Pos_M = MouseGetPos()
    $Pos_W = WinGetPos($hGui)
    $x_Offset = $Pos_M[0] - $Pos_C[0]
    $y_Offset = $Pos_M[1] - $Pos_C[1]
    While _IsPressed('01', $dll)
    $Pos_M = MouseGetPos()
    If $Pos_M <> $Pos_M2 Then
    GUICtrlSetPos($pic,$Pos_M[0] - $x_Offset, $Pos_M[1] - $y_Offset)
    sleep(10)
    EndIf
    $Pos_M = $Pos_M2
    sleep(50)
    If _IsPressed('11', $dll) Then
    $Pos_M = MouseGetPos()
    $Pos_C = ControlGetPos($hGui, "", $pic)
    $x_Offset = $Pos_C[0] + $Pos_C[2] - $Pos_M[0]
    $y_Offset = $Pos_C[1] + $Pos_C[3] - $Pos_M[1]
    While _IsPressed('11', $dll)
    _MouseTrap($Pos_C[0]+$Pos_W[0],$Pos_C[1]+$Pos_W[1],$Pos_W[2]+$Pos_W[0]-$x_Offset,$Pos_W[3]+$Pos_W[1]-$y_Offset)
    $Pos_M = MouseGetPos()
    GUICtrlSetPos($pic, $Pos_C[0], $Pos_C[1], $Pos_M[0]-$Pos_C[0]+$x_Offset, $Pos_M[1]-$Pos_C[1]+$y_Offset)
    sleep(10)
    WEnd
    ExitLoop
    EndIf
    WEnd
    DllClose($dll)
    _MouseTrap()
    EndFunc

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

    Func WM_HVSCROLL($hwnd, $iMsg, $wParam, $lParam)
    Local $hWndFrom, $iCode
    If Not IsHWnd($slider) Then $hWndCombo1 = GUICtrlGetHandle($slider)
    $hWndFrom = $lParam
    $iCode = _WinAPI_HiWord($wParam)
    Switch $hWndFrom
    Case $slider, $hWndCombo1
    GUICtrlSetData($label, "Transparence = " & GUICtrlRead($slider) & "%")
    WinSetTrans("Transparent", "", 255 - GUICtrlRead($slider) * 2.55)
    EndSwitch
    EndFunc

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

    Func _Ex()
    Exit
    EndFUnc

    [/autoit]

    @subzero: Such dir ein noobfreundlicheres Thema als erstes Projekt ;) Gibt sicher ne schöne Lösung für deine Frage ohne buggy Workarounds aber ich seh nich so den Sinn in dem ganzen :wacko: Hehe und vor Gdi ich ich persönlich angst, weil da immer mein laptop down geht!

  • es funktioniert

    @ChaosKeks Danke dir, das ist genau das was ich suche und was ich von anfang an wollte, du bist echt der einzige der mich verstanden hat.
    Eine frage habe ich auch noch ist es schwierig die letzte Maske per ini zu speichern wenn ja wie mache ich das, ich weiss das geht über iniread und iniwrite,
    aber ich weiss nicht wie ich das umsetzen soll, die bilder,die gui , deren grösse und vorallem die letzte grösse der gui wie ich das alles in die ini Schreiben kann?
    @oliverh danke für deine hilfe "anstoss" konnte dir leider mein Problem nicht erklären muss wohl an mir liegen??!! wollte doch nur das was ChaosKeks jetzt in der Letzten version gemacht hat wie das geht wollte doch ein Tipp in die richtige damit ich was lernen kann, aber trotzdem danke für deine mühe


    Kriege folgenden fehler ganz am anfang ist aber nicht schlimm Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    Spoiler anzeigen
    [autoit]

    #Include <Misc.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <SliderConstants.au3>
    #include <_WinAPI_HiWord.au3>

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

    Opt('MouseCoordMode', 0)
    Opt("GUIOnEventMode", 1)
    Global $Pos_M2 = MouseGetPos(), $pic
    Dim $sPic[1]

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

    $hGUI = GUICreate("Transparent", 575, 510, Default, Default, BitOR($WS_MINIMIZEBOX, $WS_MAXIMIZEBOX, $WS_SIZEBOX), $WS_EX_ACCEPTFILES)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Ex")
    $insert = GuiCtrlCreateButton("Insert Pic" ,10,10)
    GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKBOTTOM + $GUI_DOCKHEIGHT)
    GuiCtrlSetOnEvent(-1, "_insert")
    $delete = GuiCtrlCreateButton("Delete Pic" ,70,10)
    GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKBOTTOM + $GUI_DOCKHEIGHT)
    GuiCtrlSetOnEvent(-1, "_Delete")
    $label = GUICtrlCreateLabel("Transparence = 0%", 30, 437, -1, 14)
    GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKBOTTOM + $GUI_DOCKHEIGHT)
    $slider = GUICtrlCreateSlider(10, 457, 144, 20, BitOR($TBS_AUTOTICKS, $WS_BORDER))
    GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKBOTTOM + $GUI_DOCKHEIGHT)
    WinSetTrans("Transparent", "", 255 - GUICtrlRead($slider) * 2.55)
    GUICtrlCreatePic("", -10, -10)
    Dim $Acc[2][2] = [["^i", $insert], ["^d", $delete]]
    GUISetAccelerators($Acc)
    GUISetState(@SW_SHOW)
    GUIRegisterMsg($WM_HSCROLL, "WM_HVSCROLL")
    While 1
    sleep(10)
    WEnd

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

    Func _insert()
    $bild = FileOpenDialog("Wählen Sie eine Datei aus!", @DesktopDir & "\", "Bilder (*.jpg;*.bmp)", 1 + 4 )
    If $bild = "" Or @error Then return
    GUICtrlCreatePic($bild, 150, 150)
    GuiCtrlSetOnEvent(-1, "_DragMe")
    EndFunc

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

    Func _delete()
    GuiCtrlDelete($pic)
    EndFunc

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

    Func _DragMe()
    Global $hGui = @GUI_WINHANDLE
    $pic = @GUI_CTRLID
    Local $Pos_C, $Pos_M, $Pos_M2, $Opt_old
    Local $dll = DllOpen("user32.dll")
    $Pos_C = ControlGetPos($hGui, "", $pic)
    $Pos_M = MouseGetPos()
    $Pos_W = WinGetPos($hGui)
    $x_Offset = $Pos_M[0] - $Pos_C[0]
    $y_Offset = $Pos_M[1] - $Pos_C[1]
    While _IsPressed('01', $dll)
    $Pos_M = MouseGetPos()
    If $Pos_M <> $Pos_M2 Then
    GUICtrlSetPos($pic,$Pos_M[0] - $x_Offset, $Pos_M[1] - $y_Offset)
    sleep(10)
    EndIf
    $Pos_M = $Pos_M2
    sleep(50)
    While _IsPressed('11', $dll)
    $Pos_C = ControlGetPos($hGui, "", $pic)
    _MouseTrap($Pos_C[0]+$Pos_W[0],$Pos_C[1]+$Pos_W[1],$Pos_W[2]+$Pos_W[0],$Pos_W[3]+$Pos_W[1])
    $Pos_M = MouseGetPos()
    GUICtrlSetPos($pic, $Pos_C[0], $Pos_C[1], $Pos_M[0]-$Pos_C[0], $Pos_M[1]-$Pos_C[1])
    sleep(10)
    WEnd
    WEnd
    DllClose($dll)
    _MouseTrap()
    EndFunc

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

    Func WM_HVSCROLL($hwnd, $iMsg, $wParam, $lParam)
    Local $hWndFrom, $iCode
    If Not IsHWnd($slider) Then $hWndCombo1 = GUICtrlGetHandle($slider)
    $hWndFrom = $lParam
    $iCode = _WinAPI_HiWord($wParam)
    Switch $hWndFrom
    Case $slider, $hWndCombo1
    GUICtrlSetData($label, "Transparence = " & GUICtrlRead($slider) & "%")
    WinSetTrans("Transparent", "", 255 - GUICtrlRead($slider) * 2.55)
    EndSwitch
    EndFunc

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

    Func _Ex()
    Exit
    EndFUnc

    [/autoit]

    Edit:
    @ChaosKeks Ok das nächste wird was einfaches.
    was ich mit wenig fragen im Board bestimmt lösen werde.
    Aber das mit der ini datei kannst du das für mich lösen, dann will ich hier auch keinen mehr nerven und das thema schliessen??

    bernd670: Beiträge zusammengefasst!

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."

    Einmal editiert, zuletzt von bernd670 (13. Juni 2009 um 19:29)

  • Hmm ja und die Info, das du das ganze am ende in ne Ini schreiben willst wäre am anfang auch nicht verkehrt gewesen, weil dann müssen wir doch wie ichs dir zuerst geschrieben hab mit dem Array arbeiten, wenn du mir keine Funktion sagen kannst, die die Ctrls von einer Gui ausgibt :huh:

  • Und jetzt ?
    kann man das jetzt nicht mehr machen?

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."

  • es funktioniert

    @ChaosKeks Danke dir, das ist genau das was ich suche und was ich von anfang an wollte, du bist echt der einzige der mich verstanden hat.
    Eine frage habe ich auch noch ist es schwierig die letzte Maske per ini zu speichern wenn ja wie mache ich das, ich weiss das geht über iniread und iniwrite,
    aber ich weiss nicht wie ich das umsetzen soll, die bilder,die gui , deren grösse und vorallem die letzte grösse der gui wie ich das alles in die ini Schreiben kann?
    @oliverh danke für deine hilfe "anstoss" konnte dir leider mein Problem nicht erklären muss wohl an mir liegen??!! wollte doch nur das was ChaosKeks jetzt in der Letzten version gemacht hat wie das geht wollte doch ein Tipp in die richtige damit ich was lernen kann, aber trotzdem danke für deine mühe

    :rofl: :D mehr sag ich dazu nicht... hehe

  • Und jetzt ?
    kann man das jetzt nicht mehr machen?

    Hmm ne soviel kann ich noch.. Aber es wäre wesentlich einfacher, wenn man sowas schon am anfang weiß ;) So habs dir noch einmal geschrieben.. Hf und hoffe das thema ist jetzt ad acta..

    Spoiler anzeigen
    [autoit]

    #Include <Misc.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <SliderConstants.au3>
    #Include <Array.au3>
    #Include <WinApi.au3>

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

    Opt('MouseCoordMode', 0)
    Opt("GUIOnEventMode", 1)
    Global $Pos_M2 = MouseGetPos(), $pic
    Dim $sPic[1][2]

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

    $hGUI = GUICreate("Transparent", 575, 510, Default, Default, BitOR($WS_MINIMIZEBOX, $WS_MAXIMIZEBOX, $WS_SIZEBOX), $WS_EX_ACCEPTFILES)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Ex")
    $insert = GuiCtrlCreateButton("Insert Pic" ,10,10)
    GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKBOTTOM + $GUI_DOCKHEIGHT)
    GuiCtrlSetOnEvent(-1, "_insert")
    $delete = GuiCtrlCreateButton("Delete Pic" ,70,10)
    GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKBOTTOM + $GUI_DOCKHEIGHT)
    GuiCtrlSetOnEvent(-1, "_Delete")
    $label = GUICtrlCreateLabel("Transparence = 0%", 30, 437, -1, 14)
    GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKBOTTOM + $GUI_DOCKHEIGHT)
    $slider = GUICtrlCreateSlider(10, 457, 144, 20, BitOR($TBS_AUTOTICKS, $WS_BORDER))
    GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKBOTTOM + $GUI_DOCKHEIGHT)
    WinSetTrans("Transparent", "", 255 - GUICtrlRead($slider) * 2.55)
    GUICtrlCreatePic("", -10, -10)
    Dim $Acc[2][2] = [["^i", $insert], ["^d", $delete]]
    GUISetAccelerators($Acc)
    If FileExists(@ScriptDir&"\subLog.ini") Then
    _Load()
    FileDelete(@ScriptDir&"\subLog.ini")
    EndIf
    GUISetState(@SW_SHOW)
    GUIRegisterMsg($WM_HSCROLL, "WM_HVSCROLL")
    While 1
    sleep(10)
    WEnd

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

    Func _insert()
    $bild = FileOpenDialog("Wählen Sie eine Datei aus!", @DesktopDir & "\", "Bilder (*.jpg;*.bmp)", 1 + 4 )
    If $bild = "" Then return
    $sPic[Ubound($sPic)-1][0] = GUICtrlCreatePic($bild, 150, 150)
    $sPic[Ubound($sPic)-1][1] = $bild
    GuiCtrlSetOnEvent(-1, "_DragMe")
    Redim $sPic[Ubound($sPic)+1][2]
    EndFunc

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

    Func _delete()
    $aS = _ArraySearch($sPic,$pic)
    _ArrayDelete($sPic, $aS)
    GuiCtrlDelete($pic)
    EndFunc

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

    Func _DragMe()
    Global $hGui = @GUI_WINHANDLE
    $pic = @GUI_CTRLID
    Local $Pos_C, $Pos_M, $Pos_M2, $Opt_old
    Local $dll = DllOpen("user32.dll")
    $Pos_C = ControlGetPos($hGui, "", $pic)
    $Pos_M = MouseGetPos()
    $Pos_W = WinGetPos($hGui)
    $x_Offset = $Pos_M[0] - $Pos_C[0]
    $y_Offset = $Pos_M[1] - $Pos_C[1]
    While _IsPressed('01', $dll)
    $Pos_M = MouseGetPos()
    If $Pos_M <> $Pos_M2 Then
    GUICtrlSetPos($pic,$Pos_M[0] - $x_Offset, $Pos_M[1] - $y_Offset)
    sleep(10)
    EndIf
    $Pos_M = $Pos_M2
    sleep(50)
    If _IsPressed('11', $dll) Then
    $Pos_M = MouseGetPos()
    $Pos_C = ControlGetPos($hGui, "", $pic)
    $x_Offset = $Pos_C[0] + $Pos_C[2] - $Pos_M[0]
    $y_Offset = $Pos_C[1] + $Pos_C[3] - $Pos_M[1]
    While _IsPressed('11', $dll)
    _MouseTrap($Pos_C[0]+$Pos_W[0],$Pos_C[1]+$Pos_W[1],$Pos_W[2]+$Pos_W[0]-$x_Offset,$Pos_W[3]+$Pos_W[1]-$y_Offset)
    $Pos_M = MouseGetPos()
    GUICtrlSetPos($pic, $Pos_C[0], $Pos_C[1], $Pos_M[0]-$Pos_C[0]+$x_Offset, $Pos_M[1]-$Pos_C[1]+$y_Offset)
    sleep(10)
    WEnd
    ExitLoop
    EndIf
    WEnd
    DllClose($dll)
    _MouseTrap()
    EndFunc

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

    Func WM_HVSCROLL($hwnd, $iMsg, $wParam, $lParam)
    Local $hWndFrom, $iCode
    If Not IsHWnd($slider) Then $hWndCombo1 = GUICtrlGetHandle($slider)
    $hWndFrom = $lParam
    $iCode = _WinAPI_HiWord($wParam)
    Switch $hWndFrom
    Case $slider, $hWndCombo1
    GUICtrlSetData($label, "Transparence = " & GUICtrlRead($slider) & "%")
    WinSetTrans("Transparent", "", 255 - GUICtrlRead($slider) * 2.55)
    EndSwitch
    EndFunc

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

    Func _Ex()
    For $i = 0 To Ubound($sPic) -1
    IniWrite(@ScriptDir&"\subLog.ini", "Pfad", "key"&$i, $sPic[$i][1])
    $C_Pos = ControlGetPos($hGui, "",$sPic[$i][0])
    IniWrite(@ScriptDir&"\subLog.ini", "X", "key"&$i, $C_Pos[0])
    IniWrite(@ScriptDir&"\subLog.ini", "Y", "key"&$i, $C_Pos[1])
    IniWrite(@ScriptDir&"\subLog.ini", "W", "key"&$i, $C_Pos[2])
    IniWrite(@ScriptDir&"\subLog.ini", "H", "key"&$i, $C_Pos[3])
    Next
    Exit
    EndFUnc

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

    Func _load()
    $aData = IniReadSection(@ScriptDir&"\subLog.ini","Pfad")
    For $i = 0 To UBound($aData) - 1
    $Pfad = IniRead(@ScriptDir&"\subLog.ini","Pfad","key"&$i,"")
    $X = IniRead(@ScriptDir&"\subLog.ini","X","key"&$i,"")
    $Y = IniRead(@ScriptDir&"\subLog.ini","Y","key"&$i,"")
    $W = IniRead(@ScriptDir&"\subLog.ini","W","key"&$i,"")
    $H = IniRead(@ScriptDir&"\subLog.ini","H","key"&$i,"")
    $sPic[Ubound($sPic)-1][0] = GUICtrlCreatePic($Pfad,$X,$Y,$W,$H)
    $sPic[Ubound($sPic)-1][1] = $Pfad
    GuiCtrlSetOnEvent(-1, "_DragMe")
    Redim $sPic[Ubound($sPic)+1][2]
    Next
    EndFunc

    [/autoit]
  • darf ich dich um etwas letztes bitten dann ist auch alles geschlossen ;) Bitteee
    1.Einstellung vom slider speichern für transparents
    2.und die Gui grösse Speichern "$hGUI"

    Danke
    Und geschlossen ;)

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."

  • Spoiler anzeigen
    [autoit]

    #Include <Misc.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <SliderConstants.au3>
    #Include <Array.au3>
    #Include <WinApi.au3>

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

    Opt('MouseCoordMode', 0)
    Opt("GUIOnEventMode", 1)
    Global $Pos_M2 = MouseGetPos(), $pic
    Dim $sPic[1][2]

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

    $hGUI = GUICreate("Transparent", 575, 510, Default, Default, BitOR($WS_MINIMIZEBOX, $WS_MAXIMIZEBOX, $WS_SIZEBOX), $WS_EX_ACCEPTFILES)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Ex")
    $insert = GuiCtrlCreateButton("Insert Pic" ,10,10)
    GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKBOTTOM + $GUI_DOCKHEIGHT)
    GuiCtrlSetOnEvent(-1, "_insert")
    $delete = GuiCtrlCreateButton("Delete Pic" ,70,10)
    GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKBOTTOM + $GUI_DOCKHEIGHT)
    GuiCtrlSetOnEvent(-1, "_Delete")
    $label = GUICtrlCreateLabel("Transparence = 0%", 30, 437, -1, 14)
    GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKBOTTOM + $GUI_DOCKHEIGHT)
    $slider = GUICtrlCreateSlider(10, 457, 144, 20, BitOR($TBS_AUTOTICKS, $WS_BORDER))
    GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKBOTTOM + $GUI_DOCKHEIGHT)
    WinSetTrans("Transparent", "", 255 - GUICtrlRead($slider) * 2.55)
    GUICtrlCreatePic("", -10, -10)
    Dim $Acc[2][2] = [["^i", $insert], ["^d", $delete]]
    GUISetAccelerators($Acc)
    If FileExists(@ScriptDir&"\subLog.ini") Then
    _Load()
    ConsoleWrite($W_Pos[0])
    WinMove($hGui, "",$W_Pos[0],$W_Pos[1],$W_Pos[2],$W_Pos[3])
    GuICtrlSetData($slider, $Trans)
    GUICtrlSetData($label, "Transparence = " & GUICtrlRead($slider) & "%")
    WinSetTrans("Transparent", "", 255 - GUICtrlRead($slider) * 2.55)
    FileDelete(@ScriptDir&"\subLog.ini")
    EndIf
    GUISetState(@SW_SHOW)
    GUIRegisterMsg($WM_HSCROLL, "WM_HVSCROLL")
    While 1
    sleep(10)
    WEnd

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

    Func _insert()
    $bild = FileOpenDialog("Wählen Sie eine Datei aus!", @DesktopDir & "\", "Bilder (*.jpg;*.bmp)", 1 + 4 )
    If $bild = "" Then return
    $sPic[Ubound($sPic)-1][0] = GUICtrlCreatePic($bild, 150, 150)
    $sPic[Ubound($sPic)-1][1] = $bild
    GuiCtrlSetOnEvent(-1, "_DragMe")
    Redim $sPic[Ubound($sPic)+1][2]
    EndFunc

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

    Func _delete()
    $aS = _ArraySearch($sPic,$pic)
    _ArrayDelete($sPic, $aS)
    GuiCtrlDelete($pic)
    EndFunc

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

    Func _DragMe()
    Global $hGui = @GUI_WINHANDLE
    $pic = @GUI_CTRLID
    Local $Pos_C, $Pos_M, $Pos_M2, $Opt_old
    Local $dll = DllOpen("user32.dll")
    $Pos_C = ControlGetPos($hGui, "", $pic)
    $Pos_M = MouseGetPos()
    $Pos_W = WinGetPos($hGui)
    $x_Offset = $Pos_M[0] - $Pos_C[0]
    $y_Offset = $Pos_M[1] - $Pos_C[1]
    While _IsPressed('01', $dll)
    $Pos_M = MouseGetPos()
    If $Pos_M <> $Pos_M2 Then
    GUICtrlSetPos($pic,$Pos_M[0] - $x_Offset, $Pos_M[1] - $y_Offset)
    sleep(10)
    EndIf
    $Pos_M = $Pos_M2
    sleep(50)
    If _IsPressed('11', $dll) Then
    $Pos_M = MouseGetPos()
    $Pos_C = ControlGetPos($hGui, "", $pic)
    $x_Offset = $Pos_C[0] + $Pos_C[2] - $Pos_M[0]
    $y_Offset = $Pos_C[1] + $Pos_C[3] - $Pos_M[1]
    While _IsPressed('11', $dll)
    _MouseTrap($Pos_C[0]+$Pos_W[0],$Pos_C[1]+$Pos_W[1],$Pos_W[2]+$Pos_W[0]-$x_Offset,$Pos_W[3]+$Pos_W[1]-$y_Offset)
    $Pos_M = MouseGetPos()
    GUICtrlSetPos($pic, $Pos_C[0], $Pos_C[1], $Pos_M[0]-$Pos_C[0]+$x_Offset, $Pos_M[1]-$Pos_C[1]+$y_Offset)
    sleep(10)
    WEnd
    ExitLoop
    EndIf
    WEnd
    DllClose($dll)
    _MouseTrap()
    EndFunc

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

    Func WM_HVSCROLL($hwnd, $iMsg, $wParam, $lParam)
    Local $hWndFrom, $iCode
    If Not IsHWnd($slider) Then $hWndCombo1 = GUICtrlGetHandle($slider)
    $hWndFrom = $lParam
    $iCode = _WinAPI_HiWord($wParam)
    Switch $hWndFrom
    Case $slider, $hWndCombo1
    GUICtrlSetData($label, "Transparence = " & GUICtrlRead($slider) & "%")
    WinSetTrans("Transparent", "", 255 - GUICtrlRead($slider) * 2.55)
    EndSwitch
    EndFunc

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

    Func _Ex()
    For $i = 0 To Ubound($sPic) -1
    IniWrite(@ScriptDir&"\subLog.ini", "Pfad", "key"&$i, $sPic[$i][1])
    $C_Pos = ControlGetPos($hGui, "",$sPic[$i][0])
    IniWrite(@ScriptDir&"\subLog.ini", "X", "key"&$i, $C_Pos[0])
    IniWrite(@ScriptDir&"\subLog.ini", "Y", "key"&$i, $C_Pos[1])
    IniWrite(@ScriptDir&"\subLog.ini", "W", "key"&$i, $C_Pos[2])
    IniWrite(@ScriptDir&"\subLog.ini", "H", "key"&$i, $C_Pos[3])
    Next
    $W_Pos = WinGetPos($hGui)
    IniWrite(@ScriptDir&"\subLog.ini", "wX", "key0", $W_Pos[0])
    IniWrite(@ScriptDir&"\subLog.ini", "wY", "key0", $W_Pos[1])
    IniWrite(@ScriptDir&"\subLog.ini", "wW", "key0", $W_Pos[2])
    IniWrite(@ScriptDir&"\subLog.ini", "wH", "key0", $W_Pos[3])
    IniWrite(@ScriptDir&"\subLog.ini", "Trans", "key0", GuiCtrlRead($slider))
    Exit
    EndFUnc

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

    Func _load()
    $aData = IniReadSection(@ScriptDir&"\subLog.ini","Pfad")
    For $i = 0 To UBound($aData) - 1
    $Pfad = IniRead(@ScriptDir&"\subLog.ini","Pfad","key"&$i,"")
    $X = IniRead(@ScriptDir&"\subLog.ini","X","key"&$i,"")
    $Y = IniRead(@ScriptDir&"\subLog.ini","Y","key"&$i,"")
    $W = IniRead(@ScriptDir&"\subLog.ini","W","key"&$i,"")
    $H = IniRead(@ScriptDir&"\subLog.ini","H","key"&$i,"")
    $sPic[Ubound($sPic)-1][0] = GUICtrlCreatePic($Pfad,$X,$Y,$W,$H)
    $sPic[Ubound($sPic)-1][1] = $Pfad
    GuiCtrlSetOnEvent(-1, "_DragMe")
    Redim $sPic[Ubound($sPic)+1][2]
    Next
    Global $W_Pos[4]
    $W_Pos[0] = IniRead(@ScriptDir&"\subLog.ini", "wX", "key0","")
    $W_Pos[1] = IniRead(@ScriptDir&"\subLog.ini", "wY", "key0","")
    $W_Pos[2] = IniRead(@ScriptDir&"\subLog.ini", "wW", "key0","")
    $W_Pos[3] = IniRead(@ScriptDir&"\subLog.ini", "wH", "key0","")
    Global $Trans = IniRead(@ScriptDir&"\subLog.ini", "Trans", "key0","")
    EndFunc

    [/autoit]