1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Nestos

Beiträge von Nestos

  • OwnStyle UDF

    • Nestos
    • 2. April 2010 um 20:11

    Hab ich jetzt gerade getahn. ;)
    Beispiel ist auch dabei.

    Wünsch euch viel Spaß beim testen!

  • OwnStyle UDF

    • Nestos
    • 2. April 2010 um 09:37

    Ich stell sie rein, wenn sie ganz fertig ist.
    Derweil such ich einfach nur Tester, die mir bei der Fehlersuche helfen.

  • OwnStyle UDF

    • Nestos
    • 1. April 2010 um 23:44

    Ausgehend von diesem Thread, kam mir die Idee, ein altes GDI+ Beispiel von mir zu einer UDF zu machen.

    Beschreibung:
    Als erstes wird ein Fenster erstellt, welches in der Mitte transparent ist.
    In diesem Fenster wird der Rahmen gezeichnet, welchen man mit beliebigen Farben gestalten kann.
    Danach wird ein Fenster inmitten des transparenten Bereich des ersten Fensters erstellt, welches dann wie eine normale GUI verwendet werden kann.

    Eine Demonstration ist in der UDF drinnen.
    Einfach in Zeile 30 $testmode auf True setzten.

    Version 1.10.00

    Beispiel
    [autoit]

    #include <OwnStyle.au3>

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

    Global $hwnd1, $hwnd2, $button

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

    _OwnStyle_StartUp()

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

    $hwnd1 = _OwnStyle_GUICreate("OwnStyle Example1", 300, 500, 100, 100)
    GUICtrlCreateButton("OwnStyle Example", 25, 100, 250, 30)
    _OwnStyle_GUISetColour($hwnd1, 1, 0xFFFFFFFF, 0xFF000000, 0xFF000000)
    _OwnStyle_GUISetColour($hwnd1, 2, 0xFFFFFFFF, 0xFFFFFFFF)
    _OwnStyle_GUISetColour($hwnd1, 3, 0xFFFF9900, 0xFFFF0000)
    _OwnStyle_GUISetColour($hwnd1, 4, 0xFFFF0000, 0xFFFF00FF, 0xFF000000)
    _OwnStyle_GUISetTitle($hwnd1, "OwnStyle Example Changed")
    _OwnStyle_GUISetColour($hwnd1, 5, 0xFFFFFFFF, 0xFF000000, 0xFF000000)
    _OwnStyle_GUISetColour($hwnd1, 9, 0xFFFFFFFF, 0xFF000000, 0xFF888888)
    _OwnStyle_GUISetColour($hwnd1, 10, 0xFF000000, 0xFFFFFFFF, 0xFF888888)
    _OwnStyle_GUISetFunctions($hwnd1, "_Close")
    _OwnStyle_GUISetState()

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

    $hwnd2 = _OwnStyle_GUICreate("OwnStyle Example2", 500, 300, 700, 100)
    GUICtrlCreateLabel("OwnStyle Example", 25, 100)
    _OwnStyle_GUISetState()

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

    While 1
    Sleep(100)
    WEnd

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

    Func _Close()
    _OwnStyle_ShutDown()
    Exit
    EndFunc

    [/autoit]
    Screens

    [Blockierte Grafik: http://img163.imageshack.us/img163/8714/beispielw.png]

    Funktionen
    • _OwnStyle_StartUp

    • _OwnStyle_ShutDown

    • _OwnStyle_GUICreate

    • _OwnStyle_GUIDelete

    • _OwnStyle_GUISetState

    • _OwnStyle_GUISetTitle

    • _OwnStyle_GUISetColour

    • _OwnStyle_GUISetFunctions

    • _OwnStyle_GUIMove

    ToDo List
    • Hover Funktion schreiben
      IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII 100%

    • _OwnStyle_SetColour für die Hoverfunktionen erweitern
      IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII 100%

    • _OwnStyle_SetColour für die Inaktivität erweitern
      IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII 100%

    • _OwnStyle_GUIMove schreiben und testen
      IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII 100%

    • _OwnStyle_GUICtrlCreate schreiben und testen
      IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII 0%

    • Funktionen umbenennen
      IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII 100%

    Bugs
    • Wenn man in der Taskleiste bei aktivem Fenster auf den Task des Fensters klickt, wird dieses nur inaktiv aber nicht minimiert

    Changelog

    Version 1.10.00

    • Funktionen umbenannt
    • _OwnStyle_GUIMove hinzugefügt
    • Kleinere Scriptfehler ausgebessert
    Bisherige Downloads

    Version 1.00.00

    • Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist. 76
    • Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist. 60


    Ich hoffe, dass sich ein paar Tester, die mir bei der Bugsuche behilflich sein wollen, finden werden.

    Achtung!:
    Die UDF funktioniert nur im OnEventMode (wird beim StartUp automatisch initialisiert)!

    Würde mich über Kritik und Anregungen freuen. :)

    MfG,
    H2112

    Dateien

    OwnStyle.au3 54,9 kB – 573 Downloads OwnStyle Example.au3 1,06 kB – 600 Downloads OwnStyle.au3 51,15 kB – 617 Downloads OwnStyle Example.au3 1,02 kB – 625 Downloads
  • April April

    • Nestos
    • 1. April 2010 um 10:05

    Ich wurde heute aufgeweckt und mir wurde mitgeteilt, dass der Freund von meiner Schwester mit meinem !NEUEN MOPED! einen Unfall hatte. Natürlich renn ich sofort in die Garage, und was muss ich erblicken: Meine ganze Familie die APRIL APRIL schreit. xD

  • Lange nicht mehr aktiv transparenz mittlerweile möglich ?

    • Nestos
    • 30. März 2010 um 21:54

    Du kannst das ganze mit GDI+ machen, ich häng dir in ein paar Min, ein Beispiel an, wenn ich meine Festplatte wiederhabe. ;)

    Tja, da ich sie vor morgen nicht wiederbekommen werde hier ein Beispiel im Forum: https://autoit.de/index.php?page=Thread&amp;threadID=18810

  • AUTOIT Webbrowser

    • Nestos
    • 30. März 2010 um 11:11

    Ein kleiner Tipp:
    Setzt die ganzen Codeblöcke in nen Spoiler.

    Schreib einfach [ spoiler ] Und um den Spoiler zu schließen [ /spoiler]

    Beispiel:

    Spoiler anzeigen
    [autoit]

    ; Tada

    [/autoit]
  • Frage zu WM_SETFOCUS und WM_KILLFOCUS

    • Nestos
    • 28. März 2010 um 18:34

    Danke das hat mein Problem erledigt.

    GELÖST!

  • GDI+ Paint

    • Nestos
    • 28. März 2010 um 14:02

    Kanns mir jetzt grad nicht anschaun, freu mich aber schon drauf. :)

    Es wär gut, wenn man Ellipsen (Kreise bei gedrückter Strg-Taste), Rechtecke (Quadrate bei gedrückter Strg-Taste), Polygone, usw, zeichnen könnte.

  • Frage zu WM_SETFOCUS und WM_KILLFOCUS

    • Nestos
    • 28. März 2010 um 11:34

    Danke für die Antwort, hat aber das Problem bei mir nicht gelöst. :(

    Soblad man auf den Button klickt, verliert die GUI den Focus wieder.

  • 2 GUIS , eine schliessen?

    • Nestos
    • 28. März 2010 um 11:32

    Also einen Spoiler machst du so [ spoiler ] und schließt ihn mit [ /spoiler ] (Leerzeichen weg).

    Das sieht dann so aus:

    Spoiler anzeigen
    [autoit]

    ;Spoiler Test

    [/autoit]

    Ein Codeblock ist der Code den du eingefügt hast.

  • Frage zu WM_SETFOCUS und WM_KILLFOCUS

    • Nestos
    • 28. März 2010 um 08:58

    Hier, bitte:

    Spoiler anzeigen
    [autoit]

    Opt("GUIOnEventMode", 1)

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

    $hGUI = GUICreate("Test", 500, 500, -1, -1)
    GUISetOnEvent(-3, "_Close")
    GUIRegisterMsg(0x0007, "_WM_SetFocus")
    GUIRegisterMsg(0x0008, "_WM_KillFocus")
    ; GUIRegisterMsg(0x0003, "_WM_Move")
    ; GUIRegisterMsg(0x0201, "_WM_LButtonDown")
    ; GUIRegisterMsg(0x0200, "_WM_MouseMove")
    GUICtrlCreateButton("Test", 100, 100, 100, 20)
    GUISetState()

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

    While 1
    Sleep(100)
    WEnd

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

    Func _Close()
    Exit
    EndFunc

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

    Func _WM_SetFocus($hwnd, $message, $wParam, $lParam)
    ToolTip("Die GUI hat den Focus")
    EndFunc

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

    Func _WM_KillFocus($hwnd, $message, $wParam, $lParam)
    ToolTip("Die GUI hat den Focus verloren")
    EndFunc

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

    Func _WM_Move($hwnd, $message, $wParam, $lParam)
    ToolTip("Die Position des Fenster wurde geändert")
    EndFunc

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

    Func _WM_LButtonDown($hwnd, $message, $wParam, $lParam)
    Local $Split = StringSplit($lParam, "")
    Local $x = Dec($split[7] & $split[8] & $split[9] & $split[10])
    Local $y = Dec($split[3] & $split[4] & $split[5] & $split[6])
    ToolTip("Die linke Maustaste wurde gedrückt" & @CRLF & "xPos: " & $x & @CRLF & "yPos: " & $y)
    EndFunc

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

    Func _WM_MouseMove($hwnd, $message, $wParam, $lParam)
    Local $Split = StringSplit($lParam, "")
    Local $x = Dec($split[7] & $split[8] & $split[9] & $split[10])
    Local $y = Dec($split[3] & $split[4] & $split[5] & $split[6])
    ToolTip("Der Cursor ist innerhalb des Fensters" & @CRLF & "xPos: " & $x & @CRLF & "yPos: " & $y)
    EndFunc

    [/autoit]
  • Frage zu WM_SETFOCUS und WM_KILLFOCUS

    • Nestos
    • 27. März 2010 um 23:45

    Ich hab ein bischen mit WM_SETFOCUS und WM_KILLFOCUS rungespielt, und mir ist aufgefallen, dass, wenn in der GUI ein Controle ist, immer WM_KILLFOCUS aufgerufen wird.

    Nun zu meiner Frage:
    Gibt es eine Möglichkeit, diesen Fehler zu unterbinden?

    GELÖST!
    In Post 6 steht die Lösung.

  • MouseChaser UDF

    • Nestos
    • 27. März 2010 um 18:59

    Danke.

    Ich auch nicht, war ja auch nur so ein langeweile Skript. ;)

  • MouseChaser UDF

    • Nestos
    • 27. März 2010 um 18:46

    Ich hatte mal wieder Langeweile (Ja kommt ziehmlich häufig vor ;)).
    Dann hatte ich halt eine Idee, und aus der Idee wurde eine UDF.

    Ohne viele Worte:

    Spoiler anzeigen
    [autoit]

    ; MouseChaser, by h2112
    #include <GDIPlus.au3>
    #include-once

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

    Local $ScreenDc, $dc, $tSize, $pSize, $tSource, $pSource, $tBlend, $pBlend, $tPoint, $pPoint ; Alles, was für die transparente GUI gebracht wird
    Local $brush[2], $pen, $hEndCap
    Local $hWnd, $hGraphic, $hBitmap, $backbuffer, $matrix

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

    Local $MouseChaser = 0 ; Nummer oder Name der Funktion, die einen Mausverfolger zeichnet
    Local $rotationSpeed = 5 ; Geschwindigkeit, der zu drehenden Matrix
    Local $ChaserColour = 0xFF000000 ; Farbe des Mausverfolgers

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

    Local $ChaserWidth = 50 ; Breite des Fensters
    Local $ChaserHeight = 50 ; Höhe des Fensters

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

    Local $testmode = False ; Wenn der Testmodes auf True ist, zeigt das Script alle vordefinierten Mausverfolger.

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

    If $testmode Then
    _MouseChaser_StartUp()
    _MouseChaser_SetRotationSpeed(4)
    _MouseChaser_SetPos(75, 75)
    While 1
    _MouseChaser_SetChaserColour("0xFF" & String(Hex(Random(1, 255), 2)) & String(Hex(Random(1, 255), 2)) & String(Hex(Random(1, 255), 2)))
    _MouseChaser_SetOwnChaser("_testmode")
    For $i = 2 To 4
    Sleep(5000)
    _MouseChaser_SetChaser($i)
    _MouseChaser_SetChaserColour("0xFF" & String(Hex(Random(1, 255), 2)) & String(Hex(Random(1, 255), 2)) & String(Hex(Random(1, 255), 2)))
    Next
    Sleep(5000)
    WEnd
    EndIf

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

    #cs
    _MouseChaser_StartUp()
    Initialisiert die UDF.
    #ce
    Func _MouseChaser_StartUp()
    Local $MousePos = MouseGetPos()
    _GDIPlus_Startup()
    $hWnd = GUICreate("Mausverfolger", $ChaserWidth, $ChaserHeight, $MousePos[0], $MousePos[1], 0x80000000, BitOR(0x00000080, 0x00080000, 0x00000008))
    GUISetState()
    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hWnd)
    $hBitmap = _GDIPlus_BitmapCreateFromGraphics($ChaserWidth, $ChaserHeight, $hGraphic)
    $backbuffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)
    _GDIPlus_GraphicsSetSmoothingMode($backbuffer, 4)
    $matrix = _GDIPlus_MatrixCreate()
    _GDIPlus_MatrixTranslate($matrix, $ChaserWidth / 2, $ChaserHeight / 2)
    _GDIPlus_GraphicsSetTransform($backbuffer, $matrix)

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

    $brush[0] = _GDIPlus_BrushCreateLinear(-$ChaserWidth / 2, -$ChaserHeight / 2, $ChaserWidth / 2, $ChaserHeight / 2, $ChaserColour, 0x00000000)
    $brush[1] = _GDIPlus_BrushCreateSolid(0xFF000000)
    $pen = _GDIPlus_PenCreate($ChaserColour, 10)
    $hEndCap = _GDIPlus_ArrowCapCreate(1.5, 1.5)
    _GDIPlus_PenSetCustomEndCap($pen, $hEndCap)

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

    $ScreenDc = _WinAPI_GetDC($hWnd)
    $dc = _WinAPI_CreateCompatibleDC($ScreenDc)

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

    $tSize = DllStructCreate($tagSIZE)
    $pSize = DllStructGetPtr($tSize)
    DllStructSetData($tSize, "X", $ChaserWidth)
    DllStructSetData($tSize, "Y", $ChaserHeight)
    $tSource = DllStructCreate($tagPOINT)
    $pSource = DllStructGetPtr($tSource)
    $tBlend = DllStructCreate($tagBLENDFUNCTION)
    $pBlend = DllStructGetPtr($tBlend)
    DllStructSetData($tBlend, "Alpha", 255)
    DllStructSetData($tBlend, "Format", 1)
    $tPoint = DllStructCreate($tagPOINT)
    $pPoint = DllStructGetPtr($tPoint)
    DllStructSetData($tPoint, "X", 0)
    DllStructSetData($tPoint, "Y", 0)

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

    AdlibRegister("_MouseChaser_Chase", 10)
    AdlibRegister("_MouseChaser_Rotate", 10)

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

    If $testmode Then
    $MouseChaser = "_testmode"
    HotKeySet("{ESC}", "_MouseChaser_ShutDown")
    EndIf
    EndFunc ;==>_MouseChaser_StartUp

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

    #cs
    _MouseChaser_ShutDown()
    Beendet die UDF.
    #ce
    Func _MouseChaser_ShutDown()
    GUIDelete($hWnd)
    AdlibUnRegister("_MouseChaser_Chase")
    AdlibUnRegister("_MouseChaser_Rotate")
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_BitmapDispose($hBitmap)
    _GDIPlus_GraphicsDispose($backbuffer)
    _GDIPlus_MatrixDispose($matrix)
    _GDIPlus_BrushDispose($brush)
    _GDIPlus_PenDispose($pen)
    _WinAPI_ReleaseDC($hWnd, $dc)
    _WinAPI_ReleaseDC($hWnd, $ScreenDc)
    _GDIPlus_Shutdown()
    If $testmode Then Exit
    EndFunc ;==>_MouseChaser_ShutDown

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

    #cs
    _MouseChaser_SetPos($ChaserWidth, $ChaserHeight)
    $ChaserWidth = Breite des Fensters
    $ChaserHeight = Höhe des Fensters
    Ändert die Breite und Höhe des Fensters.
    Achtung: Alle Handles werden geändert!
    #ce
    Func _MouseChaser_SetPos($Width, $Height)
    Local $oldtestmode = $testmode
    If $testmode Then $testmode = False
    $ChaserWidth = $Width
    $ChaserHeight = $Height
    _MouseChaser_ShutDown()
    If $oldtestmode Then $testmode = True
    _MouseChaser_StartUp()
    EndFunc ;==>_MouseChaser_SetPos

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

    #cs
    _MouseChaser_SetChaser($chaser)
    $chaser = Nummer, die einen vordefinierten Mausverfolger aufruft
    Setzt einen vordefinierten Mausverfolger.
    #ce
    Func _MouseChaser_SetChaser($Chaser)
    If IsNumber($Chaser) Then
    $MouseChaser = $Chaser
    Return True
    Else
    Return False
    EndIf
    EndFunc ;==>_MouseChaser_SetChaser

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

    #cs
    _MouseChaser_SetOwnChaser($Chaser)
    $Chaser = String, der den Namen der aufzurufenden Funktion enthält
    Setzt eine eigene Funktion für den Mausverfolger.
    #ce
    Func _MouseChaser_SetOwnChaser($Chaser)
    If IsString($Chaser) Then
    $MouseChaser = $Chaser
    Return True
    Else
    Return False
    EndIf
    EndFunc ;==>_MouseChaser_SetOwnChaser

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

    #cs
    _MouseChaser_SetRotationSpeed($speed)
    $speed = Rotationsgeschwindigkeit
    Setzt die Rotationsgeschwindigkeit.
    #ce
    Func _MouseChaser_SetRotationSpeed($speed = 5)
    $rotationSpeed = $speed
    Return
    EndFunc ;==>_MouseChaser_SetRotationSpeed

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

    #cs
    _MouseChaser_SetChaserColour($Colour)
    $Colour = HEX-Code der Farbe mit Alphachannel
    Setzt die Farbe des Mausverfolgers.
    #ce
    Func _MouseChaser_SetChaserColour($Colour)
    $ChaserColour = $Colour
    _GDIPlus_BrushDispose($brush)
    $brush[0] = _GDIPlus_BrushCreateLinear(-$ChaserWidth / 2, -$ChaserHeight / 2, $ChaserWidth / 2, $ChaserHeight / 2, $ChaserColour, 0x00000000)
    _GDIPlus_BrushSetSolidColor($brush[1], $ChaserColour)
    _GDIPlus_PenSetColor($pen, $ChaserColour)
    EndFunc ;==>_MouseChaser_SetChaserColour

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

    #cs
    _MouseChaser_GetPos()
    Gibt die Breite und Höhe in einem Array zurück.
    $pos[0] = $ChaserWidth
    $pos[1] = $ChaserHeight
    #ce
    Func _MouseChaser_GetPos()
    Local $pos[2]
    $pos[0] = $ChaserWidth
    $pos[1] = $ChaserHeight
    Return $pos
    EndFunc ;==>_MouseChaser_GetPos

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

    #cs
    _MouseChaser_GetChaser()
    Gibt den aktuellen Mausverfolger zurück.
    Dieser kann eine Nummer, oder ein String sein.
    #ce
    Func _MouseChaser_GetChaser()
    Return $MouseChaser
    EndFunc ;==>_MouseChaser_GetChaser

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

    #cs
    _MouseChaser_GetHandles()
    Gibt alle verwendeten Handles in einem Array zurück.
    $ret[0] = $hWnd
    $ret[1] = $hGraphic
    $ret[2] = $hBitmap
    $ret[3] = $backbuffer
    $ret[4] = $matrix
    #ce
    Func _MouseChaser_GetHandles()
    Local $ret[5]
    $ret[0] = $hWnd
    $ret[1] = $hGraphic
    $ret[2] = $hBitmap
    $ret[3] = $backbuffer
    $ret[4] = $matrix
    Return $ret
    EndFunc ;==>_MouseChaser_GetHandles

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

    Func _testmode()
    $handles = _MouseChaser_GetHandles()
    _GDIPlus_GraphicsFillEllipse($handles[3], -24, -24, 48, 48, $brush[0])
    EndFunc ;==>_testmode

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

    Func _MouseChaser_Chase()
    Local $MousePos = MouseGetPos()
    WinMove($hWnd, "", $MousePos[0], $MousePos[1])
    EndFunc ;==>_MouseChaser_Chase

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

    Func _MouseChaser_RedrawWindow()
    _GDIPlus_GraphicsClear($backbuffer, 0x00000000)
    _MouseChaser_DrawChaser()
    Local $gdibitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBitmap)
    _WinAPI_SelectObject($dc, $gdibitmap)
    _WinAPI_UpdateLayeredWindow($hWnd, $ScreenDc, 0, $pSize, $dc, $pSource, 0, $pBlend, 2)
    _WinAPI_DeleteObject($gdibitmap)
    EndFunc ;==>_MouseChaser_RedrawWindow

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

    Func _MouseChaser_Rotate()
    _GDIPlus_MatrixRotate($matrix, $rotationSpeed)
    _GDIPlus_GraphicsSetTransform($backbuffer, $matrix)
    _MouseChaser_RedrawWindow()
    EndFunc ;==>_MouseChaser_Rotate

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

    Func _MouseChaser_DrawChaser()
    Select
    Case $MouseChaser = 1
    _GDIPlus_GraphicsClear($backbuffer, 0x00000000)
    Case $MouseChaser = 2
    _GDIPlus_GraphicsDrawArc($backbuffer, -20, -20, 39, 39, 0, 170, $pen)
    Case $MouseChaser = 3
    _GDIPlus_GraphicsFillEllipse($backbuffer, -19, -19, 10, 10, $brush[1])
    Case $MouseChaser = 4
    _GDIPlus_GraphicsFillPie($backbuffer, -25, -25, 50, 50, 0, 30, $brush[1])
    Case Else
    If IsString($MouseChaser) Then Call($MouseChaser)
    EndSelect
    EndFunc ;==>_MouseChaser_DrawChaser

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

    Func _GDIPlus_BrushCreateLinear($iX1, $iY1, $iX2, $iY2, $iARGB1 = 0xFF000000, $iARGB2 = 0xFFFFFFFF)
    Local $aResult, $start, $end, $sPoint, $ePoint

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

    $start = DllStructCreate("int X;int Y")
    DllStructSetData($start, "X", $iX1)
    DllStructSetData($start, "Y", $iY1)
    $sPoint = DllStructGetPtr($start)

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

    $end = DllStructCreate("int X;int Y")
    DllStructSetData($end, "X", $iX2)
    DllStructSetData($end, "Y", $iY2)
    $ePoint = DllStructGetPtr($end)

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

    $aResult = DllCall($ghGDIPDll, "int", "GdipCreateLineBrushI", "ptr", $sPoint, "ptr", $ePoint, "int", $iARGB1, "int", $iARGB2, "int", 0, "int*", 0)
    If @error Then Return SetError(@error, @extended, 0)

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

    Return SetError(0, $aResult[0], $aResult[6])
    EndFunc ;==>_GDIPlus_BrushCreateLinear

    [/autoit]


    Ein Beispiel ist in der UDF drinnen, einfach mal in Zeile 16 $testmode auf True setzen.

    Ich bin für Kritik und Verbesserungsvorschläge offen.

  • Statusbar verändert ihre Größe nicht mit.

    • Nestos
    • 27. März 2010 um 18:38

    Da fehlen ja die Includes. 8|

    Setzt den Code mal mit [ autoit ] & [ /autoit ]. Wäre übersichtlicher.

  • 2 GUIS , eine schliessen?

    • Nestos
    • 27. März 2010 um 16:37

    Überhaupt erstellst du die 2. GUI erst nach der If Abfrage, das solltest du nicht tun.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>

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

    ;Der Loader
    #Region ### START Koda GUI section ### Form=c:\users\jonathan verbeek\desktop\autoit\installer\loader.kxf
    $Loader = GUICreate("Loading...", 338, 178, 193, 125)
    $Pic1 = GUICtrlCreatePic("C:\Users\Jonathan Verbeek\Desktop\AutoIt\Installer\load_background.jpg", 0, 0, 337, 177, 0)
    $Progress1 = GUICtrlCreateProgress(0, 152, 337, 25)
    GUICtrlSetData(-1, 0)
    GUICtrlSetData(-1, 10)
    GUICtrlSetData(-1, 50)
    GUICtrlSetData(-1, 90)
    GUICtrlSetData(-1, 100)
    GUISetState(@SW_HIDE)
    GUISetState(@SW_ENABLE)
    #EndRegion ###

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

    ;Hauptprogramm
    #Region ### START Koda GUI section ### Form=C:\\Benutzer\Jonathan Verbeek\Desktop\AutoIT\Installer\installerpackager.kxf
    $JVIP = GUICreate("JV Installer Packager -", 992, 626, 6, 65)
    $Pic1 = GUICtrlCreatePic("C:\Users\Jonathan Verbeek\Desktop\AutoIt\Installer\background.jpg", 0, 0, 1017, 713, 0)
    $Label1 = GUICtrlCreateLabel("Step 1 - Load Files ", 40, 48, 138, 20)
    GUICtrlSetFont(-1, 10, 800, 6, "MS Sans Serif")
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetBkColor(-1, 0x434E54)
    $ListView1 = GUICtrlCreateListView("Filename|Path", 104, 88, 289, 225)
    GUICtrlSendMsg(-1, 0x101E, 0, 60)
    GUICtrlSendMsg(-1, 0x101E, 1, 200)
    $ListView1_0 = GUICtrlCreateListViewItem("", $ListView1)
    GUICtrlSetTip(-1, "Click the Button, to add Items.")
    $Button1 = GUICtrlCreateButton("Load Files", 176, 320, 113, 25, 0)
    $Label2 = GUICtrlCreateLabel("Step 2 - Settings ", 432, 248, 121, 20)
    GUICtrlSetFont(-1, 10, 800, 6, "MS Sans Serif")
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetBkColor(-1, 0x434E54)
    $Checkbox1 = GUICtrlCreateCheckbox("If ready, then run", 488, 280, 121, 17, 0)
    GUICtrlSetState(-1, $GUI_CHECKED)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetBkColor(-1, 0x434E54)
    $Checkbox2 = GUICtrlCreateCheckbox("Write Log, if ready", 488, 304, 129, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetBkColor(-1, 0x434E54)
    $Checkbox3 = GUICtrlCreateCheckbox("Close Packager, if ready", 488, 328, 161, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetBkColor(-1, 0x434E54)
    $Label3 = GUICtrlCreateLabel(".exe Path:", 488, 368, 72, 20)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetBkColor(-1, 0x434E54)
    $Input1 = GUICtrlCreateInput("", 568, 368, 225, 21)
    $Button2 = GUICtrlCreateButton("...", 800, 368, 25, 25, 0)
    $Label4 = GUICtrlCreateLabel("Step 3 - Start! ", 688, 496, 101, 20)
    GUICtrlSetFont(-1, 10, 800, 6, "MS Sans Serif")
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetBkColor(-1, 0x434E54)
    $Progress1 = GUICtrlCreateProgress(688, 520, 273, 25)
    $Button3 = GUICtrlCreateButton("Start!", 872, 560, 81, 25, 0)
    $Menu1 = GUICtrlCreateMenu("File")
    $MenuItem1c = GUICtrlCreateMenuItem("New Project", $Menu1)
    $MenuItem2c = GUICtrlCreateMenuItem("Open", $Menu1)
    $MenuItem3c = GUICtrlCreateMenuItem("Save as", $Menu1)
    $MenuItem4c = GUICtrlCreateMenuItem("Close", $Menu1)
    $Menu2 = GUICtrlCreateMenu("?")
    $MenuItem1b = GUICtrlCreateMenuItem("Help", $Menu2)
    $MenuItem2b = GUICtrlCreateMenuItem("About JVIP", $Menu2)
    GUISetState(@SW_HIDE)
    #EndRegion ### END Koda GUI section ###

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

    $Answer = MsgBox(4,"Starten","Hauptprogramm starten?")

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

    If $Answer = 6 Then
    GUISetState(@SW_HIDE, $Loader)
    GUISetState(@SW_SHOW, $JVIP)
    Else
    MsgBox(0,"OK","OK, Tschüss!")
    GUISetState(@SW_HIDE, $JVIP)
    Exit
    EndIf

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    _additems()
    Case $Button2
    _outputfile()
    Case $Button3
    _startpckg()
    Case $Progress1
    _progress()
    Case $MenuItem1c
    _newprj()
    Case $MenuItem2c
    _open()
    Case $MenuItem3c
    _saveas()
    Case $MenuItem4c
    _cls()
    Case $MenuItem1b
    _help()
    Case $MenuItem2b
    _abt()
    EndSwitch
    WEnd

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

    Func _additems()
    $File = FileOpenDialog("Load Files...", @ScriptDir ,"All Files (*.*)")
    EndFunc

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

    Func _outputfile()
    $Output = FileSaveDialog("Set Output File...", @ScriptDir ,"Execute Files (*.exe)")
    EndFunc

    [/autoit]
  • 2 GUIS , eine schliessen?

    • Nestos
    • 27. März 2010 um 15:53

    Zum verstehn schon, aber praktisch ist seine Version besser, weil ich es ja nur so als Beispiel geschrieben habe. ;)

  • 2 GUIS , eine schliessen?

    • Nestos
    • 27. März 2010 um 15:10

    Also:
    Du erstellst am Anfang vom Script beide GUIs hintereinander, und versteckst sie mit

    [autoit]

    GUISetState(@SW_Hide)

    [/autoit]


    Dann kannst du in der If Abfrage die GUI ganz einfach mit

    [autoit]

    GUISetState(@SW_Show, $gui)

    [/autoit]

    wieder erscheinen lassen.

    Beispiel:

    [autoit]


    $gui1 = GUICreate("GUI 1", 100, 100)
    GUiSetState(@SW_Hide)

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

    $gui2 = GUICreate("GUI 2", 100, 100)
    GUISetState(@SW_Hide)

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

    If MsgBox(4,"Starten?","Wollen sie das Hauptprogramm starten?") = 6 Then
    GUISetState(@SW_Show, $gui1)
    GUISetState(@SW_Show, $gui2)
    Else
    GUISetState(@SW_Show, $gui1)
    EndIf

    [/autoit]

    Hab den Code jetzt nicht getestet, müsste aber gehen.

  • Checkbox Aktion?

    • Nestos
    • 27. März 2010 um 15:03

    Oha, Fehler von mir.
    Hatte das total vergessen.

    Danke für den Hinweiß. ;)

  • Checkbox Aktion?

    • Nestos
    • 27. März 2010 um 14:10

    Versuchs mal mit

    [autoit]

    GUICtrlGetState()

    [/autoit]

    Edit:

    [autoit]

    #include <GUIConstantsEx.au3>

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

    If BitAnd(GUICtrlGetState($Checkbox1), $GUI_CHECKED) Then
    MsgBox(0, "Meldung", "DieCheckbox wurde aktiviert")
    EndIf

    [/autoit]

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™