Bilder einlesen und in GUI anzeigen

  • Hey Leute,
    ich hab mir auf Youtube ein Tutorial angeschaut zum Einbinden von Bildern etc. (http://www.youtube.com/watch?v=F9GLxGS6CLg&feature=plcp). Ich dachte mir das probiere ich auch mal und habe mir untenstehendes zusammengeschustert. Mein Problem ist, dass auf der GUI einfach garnichts passiert, bis sie dann nach 5 Sekunden eben wieder zu geht. Warum werden die Bilder nicht gemalt?

    [autoit]

    #include<GDIPlus.au3>#include<Misc.au3>$karte=GUICreate("Karte erstellen",600,600,200,200)GUISetState()_GDIPlus_Startup()
    $hGraphics = _GDIPlus_GraphicsCreateFromHWND($karte)$hBitmap = _GDIPlus_BitmapCreateFromGraphics(600, 600, $hGraphics)$hBuffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)
    $kastchen = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\hintergrundelement.png")$karaoben = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\bugnorth_y.png")
    $iX=174$iY=174$xkord=174$ykord=174$iWH=29
    _GDIPlus_GraphicsDrawImageRect($hBitmap,$kastchen,$iX,$iY,200,200) for $i = 1 To 9 ; Y for $ii = 1 To 9 ; X _GDIPlus_GraphicsDrawImageRect($hBuffer, _GDIPlus_ImageLoadFromFile(@DesktopDir & "\hintergrundelement.png"), $xkord, $ykord, $iWH, $iWH) _GDIPlus_GraphicsDrawImage($hBuffer,$karaoben,$xkord,$ykord) $xkord=$xkord+28 Next $ykord = $ykord+28 $iX = 174 NextSleep(5000)

    [/autoit]
  • Ich helfe dir gerne bei deinem Problem, vorausgesetzt du postest den Quellcode das nächste mal mit einem anderen Browser so dass man überhaupt lesen kann was das sein soll... :P
    Ich hab mir jetzt ausnahmsweise die Mühe gemacht deinen Quellcode wieder zusammenzustückeln.

    Spoiler anzeigen
    [autoit]

    #include<GDIPlus.au3>
    #include<Misc.au3>

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

    $karte = GUICreate("Karte erstellen", 600, 600, 200, 200)
    GUISetState()

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

    _GDIPlus_Startup()
    $hGraphics = _GDIPlus_GraphicsCreateFromHWND($karte)
    $hBitmap = _GDIPlus_BitmapCreateFromGraphics(600, 600, $hGraphics)
    $hBuffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)

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

    $kastchen = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\hintergrundelement.png")
    $karaoben = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\bugnorth_y.png")

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

    $iX = 174
    $iY = 174
    $xkord = 174
    $ykord = 174
    $iWH = 29

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

    _GDIPlus_GraphicsDrawImageRect($hBitmap, $kastchen, $iX, $iY, 200, 200)

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

    For $i = 1 To 9 ; Y
    For $ii = 1 To 9 ; X
    _GDIPlus_GraphicsDrawImageRect($hBuffer, _GDIPlus_ImageLoadFromFile(@DesktopDir & "\hintergrundelement.png"), $xkord, $ykord, $iWH, $iWH)
    _GDIPlus_GraphicsDrawImage($hBuffer, $karaoben, $xkord, $ykord)
    $xkord = $xkord + 28
    Next
    $ykord = $ykord + 28
    $iX = 174
    Next

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

    _GDIPlus_GraphicsDrawImageRect($hGraphics, $hBitmap, 0, 0, 600, 600) ;Backbuffer (Bitmap) auf Frontbuffer (GUI) zeichnen

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

    While GUIGetMsg() <> -3
    WEnd

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

    ; Ressourcen aus dem Speicher entfernen!
    _GDIPlus_GraphicsDispose($hGraphics)
    _GDIPlus_GraphicsDispose($hBuffer)
    _GDIPlus_BitmapDispose($hBitmap)
    _GDIPlus_ImageDispose($kastchen)
    _GDIPlus_ImageDispose($karaoben)
    _GDIPlus_Shutdown()

    [/autoit]


    Dein Script scheint zu Teilen zusammenkopiert zu sein, ohne dass du wirklich verstehst was passiert:
    - Du hast bei deinem Script vergessen die Ressourcen am Scriptende wieder aus dem Speicher zu entfernen.
    - Du zeichnest alles in den Backbuffer, ohne diesen je auf den Frontbuffer (die GUI) zu zeichnen.
    - Du gibtst deinen Variablen missverständliche und schlecht gewählte Namen.
    Falls ich mit einer Auffassung falsch liege, dann nichts für ungut. Wenn ich aber recht habe, dann schau dir doch bitte mal einige Tutorials in der Box mit der Aufschrift "Wichtige Links" links oben auf der Webseite neben den Beiträgen. ;)