If.....

  • Danke,
    das war ja einfach und wie kann ich von den bilder dynamisch die grösse ändern also per Mausklick?

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

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

  • Hmm $WS_SIZEBOX geht nich wirklich mit Bildern.. aber du könntest rein theorethisch einen Doppelklick abfangen, daraufhin das ausgewähle Bild löschen und nochmal neu erstellen nur ebn größer! Oder mit nem Button ;)

  • Hmmm,
    ja aber dann könnte man ja die grösse ja nicht bestimmen,es geht ja darum:
    Bild Positionieren das geht ja, wie kann man die bildgrösse verändern also mit der maus die Grösse bestimmen,
    also so in etwa wie bei Paint, an den ecken Klicken ziehen bis die bildgrösse da ist die man will.
    Oder ist das mit Autoit nicht möglich?

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

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

  • Du kannst mit AutoIT sogut wie Alles machen, am Ende ist ehh alles Assembler.
    Nur ist die Frage dann halt nur.. "Wie?" :)
    Du könntest Transparenter Buttons an den Rändern erstellen die sich relativ zum Pic verhalten.
    Dann halt diesen "Pfeilcursor" auswählen für die Buttons damit man weiß das da was is :)
    Und die Buttons dann mit der Funktion belegen, die größe des Pics relativ zur Maus zu ändern.

  • Tolle idee ?
    hast ein tippe wie ich dass umsetze mein aktueller code ist in beitrag 21 ?

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

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

  • will dir nicht alles machen, aber hab dir mal n denkanstoß gebastelt... stichwort: größenänderung beim klicken auf das bild mit gleichzeitig gedrückter strg taste ( na machts klick? :) )

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Include <Array.au3>
    #Include <Misc.au3>
    #include <SliderConstants.au3>
    #include <ListviewConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <SliderConstants.au3>
    #Include <GuiListView.au3>
    #Include <Array.au3>
    #Include <File.au3>

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

    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)
    Dim $Acc[2][2] = [["^i", $insert], ["^d", $delete]]
    GUISetAccelerators($Acc)
    GUISetState(@SW_SHOW)

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

    While 1
    sleep(100)
    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")
    GUICtrlCreateMenu("")
    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")
    $Opt_old = Opt('MouseCoordMode', 0)
    $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]
    _MouseTrap($Pos_W[0]+$x_Offset,$Pos_W[1]+$y_Offset,$Pos_W[0]+$Pos_W[2],$Pos_W[1]+$Pos_W[3])
    If _IsPressed('11', $dll) Then
    While _IsPressed('11', $dll) And _IsPressed('11', $dll)
    TrayTip("Info", "Mit STRG + linke Maustaste auf ein Bild geklickt", 10, 1)
    WEnd
    TrayTip("Info", "Eine der Beiden Tasten losgelassen", 10, 1)
    Else
    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)
    WEnd
    EndIf
    DllClose($dll)
    Opt('MouseCoordMode', $Opt_old)
    _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
    Func _Ex()
    Exit
    EndFUnc

    [/autoit]

    du musst nur noch das resizing mit

    [autoit]

    GUICtrlSetPos

    [/autoit]

    einbauen

  • Hab ein bisschen mitleid mit einem anfänger noch ein tipp anwelcher stelle muss ich das machen ?

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

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

  • hab dir doch tooltips eingefügt ;)

    kannst du denn überhaupt deinen bisherigen quelltext nachvollziehen?

  • Wenn ich ehrlich bin verstehe ich 80 % da ich vieles mit ChaosKeks zusammen gemacht habe,
    ich gebe ja mir mühe aber wenn man im Dunkel ist eine taschenlame bei hat aber keine batterien hat hilft das nicht weiter besonders wenn man auch kein feuerzeug hat.

    Willst du mir helfen?

    Edit:
    Also bin jetzt weiter wenn ich linke maustaste und strg drücke wandert mein Bild weg,
    aber ich kann nicht varieren habe auch keine hilfe gefunden,
    Würde mich über jede hilfe freuen ;)
    Ich vermutte der fehler liegt in zeile 66 ich muss vermutlich anstatt
    GUICtrlSetPos($pic,"",$Pos_C,$Pos_M) die bildgrösse bestimmen kriege es aber irgendwie nicht hin es ändert nur die position vom bild

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Include <Array.au3>
    #Include <Misc.au3>
    #include <SliderConstants.au3>
    #include <ListviewConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <SliderConstants.au3>
    #Include <GuiListView.au3>
    #Include <Array.au3>
    #Include <File.au3>

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

    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)
    Dim $Acc[2][2] = [["^i", $insert], ["^d", $delete]]
    GUISetAccelerators($Acc)
    GUISetState(@SW_SHOW)

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

    While 1
    sleep(100)
    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")
    GUICtrlCreateMenu("")
    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")
    $Opt_old = Opt('MouseCoordMode', 0)
    $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]
    _MouseTrap($Pos_W[0]+$x_Offset,$Pos_W[1]+$y_Offset,$Pos_W[0]+$Pos_W[2],$Pos_W[1]+$Pos_W[3])
    If _IsPressed('11', $dll) Then
    While _IsPressed('11', $dll) And _IsPressed('11', $dll)
    TrayTip("Info", "Mit STRG + linke Maustaste auf ein Bild geklickt", 10, 1)
    GUICtrlSetPos($pic,"",$Pos_C,$Pos_M)
    WEnd
    TrayTip("Info", "Eine der Beiden Tasten losgelassen", 10, 1)
    Else
    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)
    WEnd
    EndIf
    DllClose($dll)
    Opt('MouseCoordMode', $Opt_old)
    _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
    Func _Ex()
    Exit
    EndFUnc

    [/autoit]

    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:30)

  • du hast leider nicht verstanden was ich von dir wollte...

    hier der code ;)

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Include <Array.au3>
    #Include <Misc.au3>
    #include <SliderConstants.au3>
    #include <ListviewConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <SliderConstants.au3>
    #Include <GuiListView.au3>
    #Include <Array.au3>
    #Include <File.au3>

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

    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)
    Dim $Acc[2][2] = [["^i", $insert], ["^d", $delete]]
    GUISetAccelerators($Acc)
    GUISetState(@SW_SHOW)

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

    While 1
    sleep(100)
    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")
    GUICtrlCreateMenu("")
    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")
    $Opt_old = Opt('MouseCoordMode', 0)
    $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]
    ;_MouseTrap($Pos_W[0]+$x_Offset,$Pos_W[1]+$y_Offset,$Pos_W[0]+$Pos_W[2],$Pos_W[1]+$Pos_W[3])
    If _IsPressed('11', $dll) Then
    While _IsPressed('01', $dll)
    $Pos_M = MouseGetPos()
    $x_Offset = $Pos_M[0] - $Pos_C[0]
    $y_Offset = $Pos_M[1] - $Pos_C[1]
    GUICtrlSetPos($pic, $Pos_C[0], $Pos_C[1], $Pos_C[2] + $x_Offset, $Pos_C[3] + $y_Offset)
    sleep(10)
    WEnd
    Else
    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)
    WEnd
    EndIf
    DllClose($dll)
    Opt('MouseCoordMode', $Opt_old)
    _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
    Func _Ex()
    Exit
    EndFUnc

    [/autoit]

    - mit linker maustaste verschieben
    - mit linker maustaste und strg taste gleichzeitig größe ändern

  • Das tut mir leid, ist es nicht möglich per maus die grösse zu bestimmen,
    so wird er ja grösser ohne das man bestimmen welche genaue grösse?
    Ist die variante nicht möglich also mit maus verschieben drehen grössen ändern meinetwegen auch mit strg?

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

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

  • ?(

    du kannst mit meiner variante die größe frei bestimmen!!

    halten die strg taste gedrückt -> dann klicke auf das entsprechende bild und bewege deine maus -> hat das bild die gewünschte größe, lass die linke maustaste los (oder auch die strg taste)

    das funktioniert bei mir hier zu 100 %

  • Hast ja recht funktioniert ja auch

    aber ich muss es genauer einstellen können und eventuell drehen können was meinst du ist das zuviel verlangt von autoit?

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

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

  • wie willst du das einstellen können? per inputbox-abfrage oder wie? genauere angaben bitte...

    bild drehen wird schwierig werden... da wirst du um gdi+ nicht herumkommen und das ist für einen anfänger too much...

  • Hast ja recht funktioniert ja auch

    aber ich muss es genauer einstellen können und eventuell drehen können was meinst du ist das zuviel verlangt von autoit?

    Nochmal: Am Ende ist ehh alles ASM ! Hängt dann nur von der Geschwindigkeit ab!

  • Wenn ich ,
    strg linke maustaste macht es zu grosse Schritte sollte kleinere schritte und breite und höhe würde ich gerne auch bestimmen,
    also ob das bild breiter oder höher werden soll?"zur zeit wird es ja gleichmässig gross"
    ok dann verzichte ich aufs drehen das mache ich wenn ich gross bin ;)

    wie geht das freue mich schon für jeden vorschlag ;)

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

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

  • halte mal deine´linke maustaste gedrückt und klicke nicht nur einmal drauf, so wie ich es dir jetzt schon 1000000 mal erklärt habe... dann kannst du es groß und klein zeiehen wie du willst...

    ??!!

  • ok ich versuche dir mein problem zu erklären
    wenn ich das bild einfüge ist es so gross=autoit.de/wcf/attachment/4962/
    wenn ich einmal klicke so gross=autoit.de/wcf/attachment/4963/
    wenn ich noch einmall klicke so=autoit.de/wcf/attachment/4964/
    ich will das er in kleineren abständen grösser wird, zb in mm"milimeter" er wird zur zeit in dm"dezimeter"
    und das ich sagen kann werde grösser also nur y achse oder x achse
    also gehe nur in die breite oder nur in die höhe ich hoffe ich konnte dir mein problem erklären,
    ich habe schon verstanden was du meinst aber will und brauche es kleiner

    Danke nochmal an euch alle ohne euch wäre ich aufgeschmissen ;)

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

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

  • OMG Stell dich dochmal nicht so blöd an !
    MAUS GEDRÜCKT HALTEN UND DANN BEWEGEN !