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. Facemix

Beiträge von Facemix

  • Grafik Schneefall

    • Facemix
    • 28. November 2013 um 23:49

    Hallo leute,

    ich möchte einen Schneefall per Grafik schreiben, nicht per Pixel. Ich Zeig euch gleich mal den Code wie weit ich schon bin.

    bei diesem Code gibt es wohl einen Fehler ich weis nicht wo er liegt. Der Fehler zeigt sich so, die Grafiken werden gezeichnet Wunderbar, aber wenn ich diese Wie schneefall nach unten gleiten lasse, dann geht von den ganzen 50 grafiken nur 1 Grafik Kerzengerade nach unten aber nur zum Teil, danach stürzt das Script ab, jemand von euch eine Idee, wie ich diesen Fehler umgehe?

    Mein Code:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GDIPlus.au3>

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

    Global $Count = 50
    Global $hGraphics
    Global $hImage
    Dim $aHandles[100][4]

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

    $hGUI = GUICreate("Grafik Schneefall", 615, 438, 196, 127)
    GUISetState(@SW_SHOW)

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

    _GDIPlus_Startup()

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

    ;Load Image
    $hImage = _GDIPlus_ImageLoadFromFile("soother.png")

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

    ;Zeige Grafik an
    $hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGUI)

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

    For $i = 1 To $Count
    _Bilderstellen($i, Random(0, 615), Random(1, 50))
    If $i = $Count Then
    _Fall()
    EndIf
    Next

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    _GDIPlus_GraphicsDispose($hGraphics)
    _GDIPlus_ImageDispose($hImage)
    _GDIPlus_Shutdown()
    Exit

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

    EndSwitch

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

    WEnd

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

    Func _Bilderstellen($i, $x, $y)
    $aHandles[$i][1] = _GDIPlus_GraphicsDrawImageRect($hGraphics, $hImage, $x, $y, 40, 40)
    $aHandles[$i][2] = $x
    $aHandles[$i][3] = $y
    EndFunc ;==>_Bilderstellen

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

    Func _Fall()
    For $a = $aHandles[$i][3] To 615
    _GDIPlus_GraphicsDrawImageRect($hGraphics, $hImage, $aHandles[$a][2], $a, 40, 40)
    Sleep(100)
    Next
    EndFunc

    [/autoit]

    Wär super wenn ihr mir helfen könnt

  • Happy Birthday Raupi

    • Facemix
    • 26. November 2013 um 19:56

    von mir auch alles gute, Feier schön und genies deine Zeit. :)

  • ImageGUI UDF

    • Facemix
    • 21. November 2013 um 18:16

    Ich brauch nochmal eure Augen, denn ich habe eine Klickfunktion eingefügt, ohne die While schleife zu nutzen.

    Es handelt sich in diesem Script um eine ImageGUI mit noch einer Bitmap die den X-Button darstellt. Das Problem ist, man ohne die Klickfunktion, die ohne die while funktioniert, kann das fenster beliebig verschoben werden. Mit dieser Funktion aber, kann das Fenster nicht mehr verschoben werden, sondern hat eine Feste Position von der man es nicht mehr wegbewegen kann.

    Hier das Script:

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Include <WinAPI.au3>
    #include <GDIPlus.au3>

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

    _GDIPlus_Startup()

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

    Opt("GUIOnEventMode", 1)

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

    Global $iw, $ih
    #region Image Create
    Global $hBitmap = _GDIPlus_BitmapCreateFromFile(@ScriptDir & "/Images/exit.png")
    Global $hImage = _GDIPlus_ImageLoadFromFile(@ScriptDir & "/Images/wald.jpg")
    Global $iWidth = _GDIPlus_ImageGetWidth($hImage)
    Global $iHeight = _GDIPlus_ImageGetHeight($hImage)
    Global $iw = _GDIPlus_ImageGetWidth($hBitmap)
    Global $ih = _GDIPlus_ImageGetHeight($hBitmap)
    Global Const $SC_DRAGMOVE = 0xF012
    Global $hCursor1 = @WindowsDir & "/Cursors/aero_link_l.cur"
    #endregion Image Create

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

    #region GUI
    $hGUI = GUICreate("Mein Design", $iWidth, $iHeight, 192, 124, $WS_POPUP, $WS_EX_LAYERED)
    GUISetBkColor(0x01, $hGUI)
    $iLabel = GUICtrlCreateLabel("", 190, 0, $iw, $ih)
    GUISetState()
    _WinAPI_SetLayeredWindowAttributes($hGUI, 0x01, 0xFF, 3)
    #endregion GUI

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

    GUICtrlSetOnEvent($iLabel, "_Exit")

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

    #region show Images
    $hGrafics = _GDIPlus_GraphicsCreateFromHWND($hGUI)
    _GDIPlus_GraphicsDrawImage($hGrafics, $hImage, 0, 0)
    _GDIPlus_GraphicsDrawImage($hGrafics, $hBitmap, 190, 0)
    GUIRegisterMsg($WM_PAINT, "MY_WM_PAINT")
    #endregion show Images

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

    GUICtrlSetCursor($iLabel, $hCursor1)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    _GDIPlus_GraphicsDispose($hGrafics)
    _GDIPlus_Shutdown()
    Exit
    Case $GUI_EVENT_PRIMARYDOWN
    _SendMessage($hGUI, $WM_SYSCOMMAND, $SC_DRAGMOVE, 0)
    ; Case $iLabel
    ; _GDIPlus_BitmapDispose($hBitmap)
    ; _GDIPlus_GraphicsDispose($hGrafics)
    ; _GDIPlus_Shutdown()
    ; Exit

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

    EndSwitch
    WEnd

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

    Func _Exit()
    _GDIPlus_BitmapDispose($hBitmap)
    _GDIPlus_GraphicsDispose($hGrafics)
    _GDIPlus_Shutdown()
    Exit
    EndFunc

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

    ; Draw PNG image
    Func MY_WM_PAINT($hWnd, $Msg, $wParam, $lParam)
    _GDIPlus_GraphicsDrawImage($hGrafics, $hImage, 0, 0)
    _GDIPlus_GraphicsDrawImage($hGrafics, $hBitmap, 190, 0)
    ;~ _WinAPI_RedrawWindow($hGUI, 0, 0, 1)
    Return $GUI_RUNDEFMSG
    EndFunc

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

    kennt Jemand von euch eine Möglicheit, das man das Fenster wieder schieben kann, ohne dass ich GUICtrlSetOnEvent entfernen muss?

  • ImageGUI UDF

    • Facemix
    • 21. November 2013 um 16:37

    Danke Skerg jetzt funktioniert es auch. :thumbup:

  • ImageGUI UDF

    • Facemix
    • 21. November 2013 um 16:17

    Ich komme hier gerade nicht weiter, ich versuche gerade eine Funktion die Größe eines Bildes zu ermitteln zu schreiben.

    In diesem Script soll bei Buttonklick in der Console die Breite angegeben werden, doch alles was ausgegeben wird ist der wert 0. Was mache ich hier falsch? habe ich etwas übersehen?

    [autoit]

    #include <GDIPlus.au3>
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 211, 97, 192, 124)
    $Button1 = GUICtrlCreateButton("Button1", 0, 0, 209, 97)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    $iWidth = _ImageGUI_GetWidth("wald.jpg")
    ConsoleWrite($iWidth)

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

    EndSwitch
    WEnd

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

    Func _ImageGUI_GetWidth($GUIImage)
    _GDIPlus_Startup()
    $BigImage = _GDIPlus_ImageLoadFromFile($GUIImage)
    $iW = _GDIPlus_ImageGetWidth($BigImage)
    _GDIPlus_Shutdown()
    EndFunc

    [/autoit]
  • ImageGUI UDF

    • Facemix
    • 21. November 2013 um 12:59

    Guter Vergleich :)

  • ImageGUI UDF

    • Facemix
    • 21. November 2013 um 01:27

    Ich habe die Positionen der Exit, Max und Min grafiken schnell optimiert, denn die Positionen waren falsch gesetzt jetzt aber stimmt es, des weiteren habe ich erst einmal die Max Grafik entnommen fürs erste

  • ImageGUI UDF

    • Facemix
    • 21. November 2013 um 01:05

    Das ist mir Irgendwie peinlich, das komplette Script Funktioniert genau so wie ich es geschrieben hatte wunderbar. Der Fehler lag nicht am nicht angegebenen Absoluten Pfad, sondern daran, dass die Dateiendung der MainImage falsch angegeben wurde ich hatte ".jpeg" richtig war aber ".jpg" was ich für schwachsinnig halte, dass es deswegen nicht funktionierte denn JPEG und JPG sind ein und dieselbe Grafikart. Naja trotzdem danke für die Hilfe.

    Ich werde es mir für die Zukunft merken, euch gleich von Anfang an eine ganz genaue Fehlerbeschreibung zu liefern. Es tut mir leid dass ich es nicht gleich getan habe, doch auch bei mir ist es spät und echt schwer wach zu bleiben.

    name22 nichts für ungut, für uns alle ist es spät und haben auch harte Arbeit hinter uns sogar auch wieder vor uns. Auch bei dir möchte ich mich dafür entschuldigen, dass ich nicht von anfang ne genaue Fehlerbeschreibung geliefert habe.

  • ImageGUI UDF

    • Facemix
    • 21. November 2013 um 00:34

    Also ich habe das mit dem ConsoleWrite gemacht, habe die Variable $MainImage ausgeben lassen, dort wird mir nur ein Farbcode ausgegeben dieser hier "0x000000" woraus ich persönlich schliese, dass die MainImage nicht richtig eingelesen wird aus welchem Grund weis ich nicht. ich hoffe da könnt ihr mir weiterhelfen. hier der code mit dem es ausgeführt wird:

    [autoit]

    #include 'GDI+ImageGUI UDF.au3'

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

    $Main = "wald.jpeg"
    $ex = "exit.png"
    $max = "max.png"
    $min = "min.png"

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

    _ImageGUI_Create($Main, $ex, $max, $min)

    [/autoit]
  • ImageGUI UDF

    • Facemix
    • 21. November 2013 um 00:04

    nein das ist definitiv nicht das Problem, denn ich hatte ein kleines Testscript erstellt in dem ich diese au3 included habe, und von da aus wird diese funktion ausgeführt! Trotzdem nichts zu sehen, fehler werden auch keine ausgegeben

  • ImageGUI UDF

    • Facemix
    • 20. November 2013 um 23:51

    Welche funktion ist das dann? ich schaue mir ständig das Script durch doch ich kann nicht entdecken welche Funktion du meinst, die nie aufgerufen wird

  • ImageGUI UDF

    • Facemix
    • 20. November 2013 um 23:32

    Ok dann kennt ihr nun die Fehlerbeschreibung, und hoffe ihr könnt mir helfen!

  • ImageGUI UDF

    • Facemix
    • 20. November 2013 um 23:18

    ja die Grundlagen sind mir bekannt. Wenn ich mein Testscript ausführe, dann öffnet sich aber die GUI nicht ich finde meinen Fehler leider nicht

    ich will hier jetzt nicht runtergemacht werden sondern nur Hilfe das es läuft!!

  • ImageGUI UDF

    • Facemix
    • 20. November 2013 um 23:00

    Hallo Leute ich habe mir gedacht, ich schreibe einfach mal eine ImageGUI UDF also eine UDF die es erleichtert, eine GUI zu basteln, die auf Grafiken Basiert.

    Ich habe mir den Code zusammengeschrieben, doch will es nicht so ganz funktionieren. Hier mal der Code:

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GDIPlus.au3>
    #Include <WinAPI.au3>

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

    _GDIPlus_Startup()

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

    Global $hGUI, $iWidth, $iHeight, $hGrafics1, $iwExit, $ihExit, $iwMax, $ihMax, $iwMin, $ihMin, $MainImage, $ExitImage, $MaxImage, $MinImage, $hExit, $hMax, $hMin
    Global Const $SC_DRAGMOVE = 0xF012
    Func _ImageGUI_Create($GUIImage, $ExitImage, $MaxImage, $MinImage)

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

    ; Lade Images für GUI
    $MainImage = _GDIPlus_ImageLoadFromFile($GUIImage)
    $hExit = _GDIPlus_BitmapCreateFromFile($ExitImage)
    $hMax = _GDIPlus_BitmapCreateFromFile($MaxImage)
    $hMin = _GDIPlus_BitmapCreateFromFile($MinImage)
    ;==================================================

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

    ; GUIImage Größe ermitteln
    $iWidth = _GDIPlus_ImageGetWidth($MainImage)
    $iHeight = _GDIPlus_ImageGetHeight($MainImage)
    ;==================================================

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

    ; erstelle GUI
    $hGUI = GUICreate("", $iWidth, $iHeight, 192, 124, $WS_POPUP, $WS_EX_LAYERED)
    GUISetBkColor(0x01, $hGUI)
    GUISetState(@SW_SHOW)
    _WinAPI_SetLayeredWindowAttributes($hGUI, 0x01, 0xFF, 3)
    ;==================================================

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

    ;Exit-, Max- und MinImage Größe ermitteln
    $iwExit = _GDIPlus_ImageGetWidth($hExit)
    $ihExit = _GDIPlus_ImageGetHeight($hExit)
    $iwMax = _GDIPlus_ImageGetWidth($hMax)
    $ihMax = _GDIPlus_ImageGetHeight($hMax)
    $iwMin = _GDIPlus_ImageGetWidth($hMin)
    $ihMin = _GDIPlus_ImageGetHeight($hMin)
    ;==================================================

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

    ; zeige Grafiken an
    _GDIPlus_GraphicsDrawImage($hGrafics1, $MainImage, 0, 0)
    _GDIPlus_GraphicsDrawImage($hGrafics1, $hExit, $iWidth -5, 0)
    _GDIPlus_GraphicsDrawImage($hGrafics1, $hMax, $iWidth - $iwExit -5, 0)
    _GDIPlus_GraphicsDrawImage($hGrafics1, $hMin, $iWidth - $iwExit - $iwMax -5, 0)
    GUIRegisterMsg($WM_PAINT, "MY_WM_PAINT")

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $GUI_EVENT_PRIMARYDOWN
    _SendMessage($hGUI, $WM_SYSCOMMAND, $SC_DRAGMOVE, 0)

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

    EndSwitch
    WEnd

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

    EndFunc

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

    ; Grafiken anzeigen
    Func MY_WM_PAINT($hWnd, $Msg, $wParam, $lParam)
    Global $hGrafics1 = _GDIPlus_GraphicsCreateFromHWND($hGUI)
    _GDIPlus_GraphicsDrawImage($hGrafics1, $MainImage, 0, 0)
    _GDIPlus_GraphicsDrawImage($hGrafics1, $hExit, $iWidth -5, 0)
    _GDIPlus_GraphicsDrawImage($hGrafics1, $hMax, $iWidth - $iwExit -5, 0)
    _GDIPlus_GraphicsDrawImage($hGrafics1, $hMin, $iWidth - $iwExit - $iwMax -5, 0)
    ;~ _WinAPI_RedrawWindow($hGUI, 0, 0, 1)
    Return $GUI_RUNDEFMSG

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

    EndFunc

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

    _GDIPlus_Shutdown()

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

    Hoffe ihr könnt helfen

  • GDI+ Image als GUI nutzen

    • Facemix
    • 19. November 2013 um 19:02

    So jetzt wird auch bei mir eine Grafik angezeigt. Danke euch

  • GDI+ Image als GUI nutzen

    • Facemix
    • 19. November 2013 um 18:37

    habe das bild nun auf dem rechner nur leider funktioniert es noch immer nicht

  • GDI+ Image als GUI nutzen

    • Facemix
    • 19. November 2013 um 18:17

    hey leute,

    ich möchte eine Grafik als GUI nutzen, mit folgendem Code habe ich es probiert klappt leider nicht.

    könnt ihr mir helfen?

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Include <WinAPI.au3>
    #include <GDIPlus.au3>

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

    _GDIPlus_Startup()

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

    Global $hImage, $hGUI
    Global $iWidth = _GDIPlus_ImageGetWidth($hImage)
    Global $iHeight = _GDIPlus_ImageGetHeight($hImage)
    Global Const $SC_DRAGMOVE = 0xF012

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

    $hBrush = _GDIPlus_BrushCreateSolid(0xFF0000FF)
    $hGrafics = _GDIPlus_GraphicsCreateFromHWND($hGUI)
    $hImage = _GDIPlus_ImageLoadFromFile("http://upload.wikimedia.org/wikipedia/commons/b/b1/Waldreiche_Region_Beispiel_Gloednitz_22072007_01.jpg")
    _GDIPlus_GraphicsDrawImage($hGrafics, $hImage, 0, 0)

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

    $hGUI = GUICreate("Mein Design", $iWidth, $iHeight, 192, 124)
    GUISetBkColor(0x01, $hGUI)
    GUISetState($GUI_DISABLE)
    _WinAPI_SetLayeredWindowAttributes($hGUI, 0x01, 0xFF, 3)

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

    GUIRegisterMsg($WM_PAINT, "MY_WM_PAINT")

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    _GDIPlus_GraphicsDispose($hGrafics)
    ;_GDIPlus_BitmapDispose($hBitmap)
    _GDIPlus_Shutdown()
    Case $GUI_EVENT_PRIMARYDOWN
    _SendMessage($hGUI, $WM_SYSCOMMAND, $SC_DRAGMOVE, 0)

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

    EndSwitch
    WEnd

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

    ; Draw PNG image
    Func MY_WM_PAINT($hWnd, $Msg, $wParam, $lParam)
    _GDIPlus_GraphicsDrawImage($hGrafics, $hImage, 0, 0)
    _WinAPI_RedrawWindow($hGUI, 0, 0, 1)
    Return $GUI_RUNDEFMSG
    EndFunc

    [/autoit]
  • Facebook-Api für Facebookspiele

    • Facemix
    • 19. November 2013 um 15:05

    Hallo, suche gerade dringend unterstützung beim erstellen einer Facebook API für die Spiele per PHP

    Leider bin ich auf dem Gebiet PHP nicht vertraut. Ich hoffe deshalb hier Hilfebekommen zu können.

    Es ist zwar eine PHP-Anfrage, doch ich hoffe, dass sich hier jemand mit PHP ausreichend auskennt

  • Login

    • Facemix
    • 15. November 2013 um 21:06

    PainTain du hast recht war ein blöder einfall

  • Login

    • Facemix
    • 15. November 2013 um 20:39

    was meinst du mit falsch?

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™