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

Beiträge von Freaky

  • _GDIPlus_ImageLoadFromFile auch anderes?

    • Freaky
    • 22. August 2012 um 02:56

    Danke :)
    Für alle die faul sind und auf diesen Thread deswegen gestoßen sind:

    Spoiler anzeigen
    [autoit]

    #Include <Memory.au3>
    Func Load_BMP_From_Mem($pic) ;thanks to ProgAndy for mem allocation lines
    Local $memBitmap, $len, $tMem, $hImage, $hData, $pData, $hStream, $hBitmapFromStream
    $memBitmap = Binary($pic) ;load image saved in variable (memory) and convert it to binary
    $len = BinaryLen($memBitmap) ;get length of image

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

    $hData = _MemGlobalAlloc($len, 0x0002) ;allocates movable memory ($GMEM_MOVEABLE = 0x0002)
    $pData = _MemGlobalLock($hData) ;translate the handle into a pointer
    $tMem = DllStructCreate("byte[" & $len & "]", $pData) ;create struct
    DllStructSetData($tMem, 1, $memBitmap) ;fill struct with image data
    _MemGlobalUnlock($hData) ;decrements the lock count associated with a memory object that was allocated with GMEM_MOVEABLE

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

    $hStream = _WinAPI_CreateStreamOnHGlobal($pData) ;Creates a stream object that uses an HGLOBAL memory handle to store the stream contents
    $hBitmapFromStream = _GDIPlus_BitmapCreateFromStream($hStream) ;Creates a Bitmap object based on an IStream COM interface
    $tMem = ""
    Return $hBitmapFromStream
    EndFunc

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

    Func _WinAPI_CreateStreamOnHGlobal($hGlobal = 0, $fDeleteOnRelease = True)
    Local $aResult = DllCall("ole32.dll", "int", "CreateStreamOnHGlobal", "hwnd", $hGlobal, "int", $fDeleteOnRelease, "ptr*", 0)
    If @error Then Return SetError(@error, @extended, 0)
    Return $aResult[3]
    EndFunc ;==>_WinAPI_CreateStreamOnHGlobal

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

    Func _GDIPlus_BitmapCreateFromStream($pStream)
    Local $aResult = DllCall($ghGDIPDll, "uint", "GdipCreateBitmapFromStream", "ptr", $pStream, "int*", 0)

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

    If @error Then Return SetError(@error, @extended, 0)
    Return $aResult[2]
    EndFunc ;==>_GDIPlus_BitmapCreateFromStream

    [/autoit]
  • Transparents und scharfe Schrift

    • Freaky
    • 22. August 2012 um 02:04

    Eigentlich wollte ich es nicht so haben, das ist doch unschön :D
    Ich möchte die Sekundenanzeige unten rechts als kleine Schrift haben.
    Leider bin ich gerade am verzweifeln wie ich eine kleinere Schrift an den String haue. Ich habe es hinbekommen eine große und kleine Schrift anzeigen zu lassen aber die Sekunden überschreiben die Stunden und Minuten und ich sehe die Sekunden nun doppelt, bin aber noch am testen :D

    Edit:
    Okay, soweit binn ich schon, wie verschiebe ich jetzt die Sekunden nach rechts?

    Spoiler anzeigen
    [autoit]

    #include <WindowsConstants.au3>
    #include <GUIConstants.au3>
    #include <GDIPlus.au3>
    #include <WinAPI.au3>
    #include <Array.au3>

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

    ; - Author: name22 (http://www.autoit.de)

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

    Opt("GUIOnEventMode", 1)

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

    $iWidth = 460
    $iHeight = 150

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

    $sFontName = "Bookman Old Style"
    $iARGB_Font = 0xA0000000

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

    $nIntervall = 200

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

    $hWnd = GUICreate("Clock", $iWidth+60, $iHeight, Default, (@DesktopHeight / 2) + ((@DesktopHeight / 2 / 2)), $WS_POPUP, BitOR ($WS_EX_TRANSPARENT,$WS_EX_LAYERED))
    GUICtrlCreateLabel("", 0, 0, $iWidth, $iHeight, Default, $GUI_WS_EX_PARENTDRAG)
    GUISetState()

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

    $hDC_Window = _WinAPI_GetDC($hWnd)
    $hDC_Buffer = _WinAPI_CreateCompatibleDC($hDC_Window)
    $hBitmap = _WinAPI_CreateCompatibleBitmap($hDC_Window, $iWidth, $iHeight)
    _WinAPI_SelectObject($hDC_Buffer, $hBitmap)

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

    _GDIPlus_Startup()

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

    $hGraphics = _GDIPlus_GraphicsCreateFromHDC($hDC_Buffer)
    $hGraphics2 = _GDIPlus_GraphicsCreateFromHDC($hDC_Buffer)
    _GDIPlus_GraphicsSetSmoothingMode($hGraphics, 2)
    _GDIPlus_GraphicsSetSmoothingMode($hGraphics2, 2)
    _GDIPlus_GraphicsSetTextRenderingHint($hGraphics, 3)
    _GDIPlus_GraphicsSetTextRenderingHint($hGraphics2, 3)

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

    $hStringFormat = _GDIPlus_StringFormatCreate()
    $hFontFamily = _GDIPlus_FontFamilyCreate($sFontName)
    $hFont = _GDIPlus_FontCreate($hFontFamily, 100, 1, 3)
    $hFont2 = _GDIPlus_FontCreate($hFontFamily, 30, 1, 3)
    $hBrush = _GDIPlus_BrushCreateSolid($iARGB_Font)

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

    $tSize = DllStructCreate($tagSIZE)
    $pSize = DllStructGetPtr($tSize)
    DllStructSetData($tSize, "X", $iWidth)
    DllStructSetData($tSize, "Y", $iHeight)
    $tSource = DllStructCreate($tagPOINT)
    $pSource = DllStructGetPtr($tSource)
    $tBlend = DllStructCreate($tagBLENDFUNCTION)
    $pBlend = DllStructGetPtr($tBlend)
    DllStructSetData($tBlend, "Alpha", 255)
    DllStructSetData($tBlend, "Format", 1)

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

    _UpdateTime()
    AdlibRegister("_UpdateTime", $nIntervall)

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

    GUIRegisterMsg($WM_PAINT, "_WM_PAINT")
    GUISetOnEvent($GUI_EVENT_RESTORE, "_WM_PAINT")
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
    OnAutoItExitRegister("_Shutdown")

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

    While Sleep(10000)
    WEnd

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

    Func _UpdateTime()
    Local Static $sCurTime = "", $tLayout = _GDIPlus_RectFCreate()

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

    $sNewTime = @SEC
    If $sNewTime = $sCurTime Then Return 0

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

    $sCurTime = $sNewTime
    $aMeasure = _GDIPlus_GraphicsMeasureString($hGraphics, @HOUR & ":" & @MIN, $hFont, $tLayout, $hStringFormat)

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

    _GDIPlus_GraphicsClear($hGraphics, 0)
    _GDIPlus_GraphicsDrawStringEx($hGraphics, @HOUR & ":" & @MIN, $hFont, $aMeasure[0], $hStringFormat, $hBrush)
    _GDIPlus_GraphicsDrawStringEx($hGraphics2, @SEC, $hFont2, $aMeasure[0], $hStringFormat, $hBrush)
    _WinAPI_UpdateLayeredWindow($hWnd, $hDC_Window, 0, $pSize, $hDC_Buffer, $pSource, 0, $pBlend, $ULW_ALPHA)
    EndFunc

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

    Func _WM_PAINT()
    _WinAPI_UpdateLayeredWindow($hWnd, $hDC_Window, 0, $pSize, $hDC_Buffer, $pSource, 0, $pBlend, $ULW_ALPHA)
    EndFunc

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

    Func _Exit()
    Exit
    EndFunc

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

    Func _Shutdown()
    _WinAPI_ReleaseDC($hWnd, $hDC_Window)
    _WinAPI_DeleteDC($hDC_Buffer)
    _WinAPI_DeleteObject($hBitmap)

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

    _GDIPlus_GraphicsDispose($hGraphics)
    _GDIPlus_StringFormatDispose($hStringFormat)
    _GDIPlus_FontFamilyDispose($hFontFamily)
    _GDIPlus_FontDispose($hFont)
    _GDIPlus_BrushDispose($hBrush)
    _GDIPlus_Shutdown()
    EndFunc

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

    Func _GDIPlus_GraphicsSetTextRenderingHint($hGraphics, $iTextRenderingHint)
    Local $aResult = DllCall($ghGDIPDll, "uint", "GdipSetTextRenderingHint", "hwnd", $hGraphics, "int", $iTextRenderingHint)

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

    If @error Then Return SetError(@error, @extended, False)
    $GDIP_STATUS = $aResult[0]
    Return $aResult[0] = 0
    EndFunc ;==>_GDIPlus_GraphicsSetTextRenderingHint

    [/autoit]
  • Transparents und scharfe Schrift

    • Freaky
    • 22. August 2012 um 01:49

    Genial, danke :)
    Ich versuche jetzt mal selbst eine Sekundenanzeige zu machen, wenn ich dann verzweifle, dann melde ich mich wieder :D

  • _GDIPlus_ImageLoadFromFile auch anderes?

    • Freaky
    • 22. August 2012 um 01:32

    Hallo,
    gibt es eine Möglichkeit _GDIPlus_ImageLoadFromFile ein Bild zu übergeben das im Binary Modus gelesen wurde ohne sie zuerst irgend wo ab zu speichern? Oder kann man vielleicht _GDIPlus_ImageLoadFromFile überhaupt durch ein anderes Bild ersetzen, sodass man es direkt übergeben kann.
    Ich freue mich über eure Hilfe :)
    mfg Freaky

  • Transparents und scharfe Schrift

    • Freaky
    • 22. August 2012 um 00:54

    Hey vielen Dank für deine Antwort.
    Leider weiß ich jetzt 0 wie ich ein Text hinschreiben soll und denn nach jeder Sekunde aktuallisieren könnte :/

  • Transparents und scharfe Schrift

    • Freaky
    • 21. August 2012 um 23:53

    Hallo,
    ich bin momentan an einer Uhr dran die für ein Kumpel ist und soweit funktioniert sie auch.
    Mein Problem an der ganzen Geschichte ist aber, das die Schrift von der Uhr unscharf ist und das ich die Schrift selbst nicht Transparent machen kann :(

    Spoiler anzeigen
    [autoit]

    #include <WindowsConstants.au3>
    #include <WinApi.au3>

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

    $hGui = GUICreate("Clock", 460, 150, Default, (@DesktopHeight / 2) + ((@DesktopHeight / 2 / 2)), $WS_POPUP, BitOR($WS_EX_TRANSPARENT, $WS_EX_LAYERED))
    GUISetBkColor(0x010203)
    _WinAPI_SetLayeredWindowAttributes($hGui, 0x010203)
    $oLabelClock = GUICtrlCreateLabel(@HOUR & ":" & @MIN, 0, 0, 500, 500)
    GUICtrlSetFont(-1, 100, 800, 0, "Bookman Old Style", 2)
    GUICtrlSetColor(-1, 0x000000)
    $oLabelClockSeonds = GUICtrlCreateLabel(@SEC, 400, 85, 70, 40)
    GUICtrlSetFont(-1, 30, 800, 0, "Bookman Old Style", 2)
    GUICtrlSetColor(-1, 0x000000)
    GUISetState(@SW_SHOW)

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

    $nTimerDefault = TimerInit()
    $nTimerSeconds = TimerInit()

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

    While 1
    Switch GUIGetMsg()
    Case $oLabelClock

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

    Case -3
    Exit
    EndSwitch

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

    If ((TimerDiff($nTimerDefault) >= 10000) And (GUICtrlRead($oLabelClock) <> @HOUR & ":" & @MIN)) Then
    GUICtrlSetData($oLabelClock, @HOUR & ":" & @MIN)
    $nTimerDefault = TimerInit()
    EndIf
    If ((TimerDiff($nTimerSeconds) >= 1000) And (GUICtrlRead($oLabelClockSeonds) <> @SEC)) Then
    GUICtrlSetData($oLabelClockSeonds, @SEC)
    $nTimerSeconds = TimerInit()
    EndIf
    WEnd

    [/autoit]

    Kann mir da einer helfen bitte?

  • Mutex frage

    • Freaky
    • 17. August 2012 um 19:39

    Naja, wenn ich es aber im nachhinein noch mal überprüfe ob der Mutex noch an ist, dann sagt es mir das es an ist, also ist die Fehlermeldung schon richtig ^^

  • Mutex frage

    • Freaky
    • 17. August 2012 um 16:26

    Hallo,
    ich hatte gestern Abend eine nette Unterhaltung mit einem Freund über Mutex etc.
    Dies ist für mich was ganz neues und eigentlich eine sehr nette Idee.
    So, nun habe ich ein Script im Internet gefunden womit man ein Mutex überprüfen kann, erstellen und schliessen.
    Aber was ist, wenn ich ein bereits exestierenden Mutex schliessen möchte das von einem anderem Programm erstellt wurde? Gibt es dafür auch irgend was?
    Ich habe einfach versucht das Überprüfungsscript und das Schliesscript zusammen zu fassen, leider bekomme ich beim schliessen eine 0, also ein Fehler wieder.
    Könnt ihr mir da vielleicht Helfen?

    [autoit]

    $kill = _KillMutex("ThisIsATestMutix")
    MsgBox (0,"Mutex",$kill)

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

    Func _KillMutex ($szMutexName)
    Local $hMutex = DllCall("Kernel32.dll", "hwnd", "OpenMutex", "int", 0x1F0001, "int", 1, "str", $szMutexName)
    Local $aGLE = DllCall("Kernel32.dll", "int", "GetLastError")
    If IsArray($aGLE) And $aGLE[0] = 127 Then
    Local $aRM = DllCall("kernel32.dll", "int", "ReleaseMutex", "hwnd", $hMutex[0])
    If IsArray($aRM) And $aRM[0] > 0 Then Return 1 ; Erfolgreich
    Return -1 ; Konnte nicht getötet werden
    EndIf
    Return 0 ; Exestiert nicht
    EndFunc

    [/autoit]


    mfg Freaky

  • Grafische Spielerei

    • Freaky
    • 11. August 2012 um 02:27

    904344+150+2759+58
    Sieht aus wie ein Bohrer :D

  • [IE.au3] div oder frame auslesen

    • Freaky
    • 9. August 2012 um 15:58

    Mir ist dann auch gleich nocht aufgefallen, dass dummerweise jedes IE eine andere Struktur hat und somit StringRegExp da nicht funktioniert :/

  • [IE.au3] div oder frame auslesen

    • Freaky
    • 8. August 2012 um 15:45

    Hey danke, dies möchte ich aber ja vermeiden.
    Grund dafür ist, dass mein Queltext größer ist als 15 Zeilen und bei immer größerem HTML Script wird AutoIt ja immer langsammer.
    Ich habe es z.B. mit

    [autoit]

    #include <IE.au3>
    $oIE = _IE_Example ("basic")
    $oDiv = _IEGetObjById ($oIE, "line1")
    ConsoleWrite(_IEPropertyGet($oDiv, "innertext") & @CRLF)

    [/autoit]


    Natürlich, angepasst, so dass es bei meinem HTML Script auch funktioniert, nur leider haut er mir IMMER diese Fehlermeldung raus: $_IEStatus_InvalidObjectType
    Leider kann ich damit mal mega 0 anfangen ...

    /Edit:
    Mir ist dann auch gleich nocht aufgefallen, dass dummerweise jedes IE eine andere Struktur hat und somit StringRegExp da nicht funktioniert :/

  • GDI+ Bildschirmschoner mit Rechtecken

    • Freaky
    • 8. August 2012 um 04:41

    Hey,
    sieht ja ganz kuhl aus.
    Ich würde es eig. ganz schicker finden, wenn du den Übergang viel langsammer und vielleicht so verschwommen gestalten könntest.
    Sonst sieht es ganz gut aus.

  • [IE.au3] div oder frame auslesen

    • Freaky
    • 8. August 2012 um 04:05

    Hallo,
    gibt es gescheite Möglichkeiten eine div oder frame aus zu lesen die auch funktioniert?
    Ich habe jetzt die ganze Hilfe abgeklappert und bin nicht drum rum um _StringBetween gekommen.
    Könnt ihr mir vielleicht helfen?
    Habe hier auch gleich ein HTML Script das ich teils verwende:

    HTML
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html>
    	<head>
    		<title>Test</title>
    		<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
    		<meta http-equiv="X-UA-Compatible" content="IE=9" />
    	</head>
    	<body oncontextmenu="return false" onselectstart="return false" onKeyDown ="showKeyCode();">
    		<div id="content">
    			bla bla
    		</div>
    		<div id="return" style="display: none;">abc</div>
    	</body>
    </html>
    Alles anzeigen


    Ich freue mich über jede Hilfe.
    mfg Freaky

  • GDIpProgress wird falsch dargestellt

    • Freaky
    • 24. Juli 2012 um 00:05

    Ich habe es voll verpeilt.
    Danke funkey an die Lösung. Aber was ist, wenn ich eins mit und eins ohne Rand haben möchte? Kann man dies nicht irgend wie was machen?

  • GDIpProgress wird falsch dargestellt

    • Freaky
    • 21. Juli 2012 um 00:54

    Danke und es funktioniert sogar.
    Weißt du vielleicht so nebenbei ob es möglich wäre den Rand der Ladebalken zu entfernen?

  • GDIpProgress wird falsch dargestellt

    • Freaky
    • 20. Juli 2012 um 22:50

    Hallo,
    ich habe früher immer die GDIpProgress UDF benutzt. Leider jetzt stimmt was mit den farben nicht.
    Die UDF findet ihr hier: Progressbar mit GDIplus
    Und so sieht es jetzt aus: [Blockierte Grafik: http://picul.de/view/5If] 
    Kann man diesen Fehler irgend wie beheben?
    mfg Freaky

  • Gitter System?

    • Freaky
    • 20. Juli 2012 um 14:55

    Vielen Dank, genauso wollte ich das auch :)
    Was mich jetzt aber voll irretiert ist, warum geht es zu klein mit Mod und bei mir war es so viel größer.

  • Gitter System?

    • Freaky
    • 20. Juli 2012 um 03:26

    Wenn man auf den draw Button drückt, dann malt es am Ende 2 blaue Buttons nebeneinander, dies soll es aber nicht.
    Es soll einfach weiter nach dem Muster gehen. Dies ist genauso unten.

  • Gitter System?

    • Freaky
    • 20. Juli 2012 um 00:47

    Hey danke. Dies ist mir leider etwas zu langsam.
    Ich habe mich jetzt einfach für die Button Lösung entschieden aber ich bräuchte mal eben Hilfe bei einem merkwürdigen Problem:

    Spoiler anzeigen
    [autoit]

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

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

    Global $iWidth, $iHeigh, $iBlockSize = 20, $iWater
    Global $iBlue = 0x0066ff, $iGreen = 0x21610B, $iBrown = 0x693f05

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

    $iForm1 = GUICreate("FarmThingy", 134, 52)
    GUICtrlCreateLabel("Width:", 8, 2, 30, 21)
    GUICtrlCreateLabel("Heigh:", 8, 27, 30, 21)
    $iInputWidth = GUICtrlCreateInput("", 40, 2, 30, 21, BitOR($ES_CENTER, $ES_NUMBER))
    $iInputHeigh = GUICtrlCreateInput("", 40, 25, 30, 21, BitOR($ES_CENTER, $ES_NUMBER))
    $iButtonGenerate = GUICtrlCreateButton("Generate", 72, 0, 60, 50)
    GUISetState(@SW_SHOWNORMAL, $iForm1)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case -3
    Exit
    Case $iButtonGenerate
    $iWidth = GUICtrlRead($iInputWidth)
    $iHeigh = GUICtrlRead($iInputHeigh)
    GUIDelete($iForm1)
    ExitLoop
    EndSwitch
    WEnd

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

    Global $iMinimum = 4
    Global $iButtonKoordinate[$iWidth + 1][$iHeigh + 1], $iBackgroundColor[$iWidth + 1][$iHeigh + 1]

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

    $iForm2 = GUICreate("FarmThingy", $iBlockSize * $iWidth, $iBlockSize * $iHeigh,0,0)
    GUISetBkColor (0x000000, $iForm2)
    GUISetState(@SW_SHOWNORMAL, $iForm2)
    For $x = 1 To $iWidth
    For $y = 1 To $iHeigh
    $iButtonKoordinate[$x][$y] = GUICtrlCreateButton("",($x-1)*$iBlockSize, ($y-1) * $iBlockSize, $iBlockSize, $iBlockSize)
    $iBackgroundColor[$x][$y] = 0x693f05
    GUICtrlSetBkColor ($iButtonKoordinate[$x][$y],$iBackgroundColor[$x][$y])
    Next
    Next

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

    $iForm3 = GUICreate ("FarmThingy", 300,300,Default,Default,Default,Default,$iForm2)
    $iControlWheat = GUICtrlCreateRadio ("Wheat",8,2,40,21)
    $iButtonDraw = GUICtrlCreateButton ("Draw",8,25,40,25)
    GUISetState (@SW_SHOWNORMAL, $iForm3)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case -3
    Exit
    Case $iButtonDraw
    For $i = 1 To $iWidth
    For $j = 1 To $iHeigh
    $iWater = False
    For $k = 0 To $iMinimum
    For $l = 0 To $iMinimum
    If (($i+$k <= $iWidth) And ($i-$k >= 0) And ($j+$l <= $iHeigh) And ($j-$l >= 0)) Then
    If ($iBackgroundColor [$i+$k][$j] = $iBlue) Then
    $iWater = True
    ExitLoop 1
    ElseIf ($iBackgroundColor [$i-$k][$j] = $iBlue) Then
    $iWater = True
    ExitLoop 1
    ElseIf ($iBackgroundColor [$i][$j+$l] = $iBlue) Then
    $iWater = True
    ExitLoop 1
    ElseIf ($iBackgroundColor [$i][$j-$l] = $iBlue) Then
    $iWater = True
    ExitLoop 1
    ElseIf ($iBackgroundColor [$i+$k][$j+$l] = $iBlue) Then
    $iWater = True
    ExitLoop 1
    ElseIf ($iBackgroundColor [$i-$k][$j-$l] = $iBlue) Then
    $iWater = True
    ExitLoop 1
    ElseIf ($iBackgroundColor [$i-$k][$j+$l] = $iBlue) Then
    $iWater = True
    ExitLoop 1
    ElseIf ($iBackgroundColor [$i+$k][$j-$l] = $iBlue) Then
    $iWater = True
    ExitLoop 1
    ElseIf ($iBackgroundColor [$i+$k][$j-$l] = $iBlue) Then
    $iWater = True
    ExitLoop 1
    ElseIf ($iBackgroundColor [$i-$k][$j+$l] = $iBlue) Then
    $iWater = True
    ExitLoop 1
    EndIf
    EndIf
    Next
    Next

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

    If (($iWater = True) And ($iBackgroundColor[$i][$j] <> $iBlue)) Then
    $iBackgroundColor[$i][$j] = $iGreen
    GUICtrlSetBkColor ($iButtonKoordinate[$i][$j], $iBackgroundColor[$i][$j])
    ElseIf (($iWater = False) And ($iBackgroundColor[$i][$j] = $iGreen)) Then
    $iBackgroundColor[$i][$j] = $iBrown
    GUICtrlSetBkColor ($iButtonKoordinate[$i][$j], $iBackgroundColor[$i][$j])
    ElseIf (($iWater = False) And ($iBackgroundColor[$i][$j] = $iBrown)) Then
    $iBackgroundColor[$i][$j] = $iBlue
    GUICtrlSetBkColor ($iButtonKoordinate[$i][$j], $iBackgroundColor[$i][$j])
    EndIf
    Next
    Next
    EndSwitch
    For $i = 1 To $iWidth
    For $j = 1 To $iHeigh
    If ($nMsg = $iButtonKoordinate[$i][$j]) Then
    If ($iBackgroundColor[$i][$j] = $iBrown) Then
    $iBackgroundColor[$i][$j] = $iBlue
    GUICtrlSetBkColor ($iButtonKoordinate[$i][$j], $iBackgroundColor[$i][$j])
    Else
    $iBackgroundColor[$i][$j] = 0x693f05
    GUICtrlSetBkColor ($iButtonKoordinate[$i][$j],$iBackgroundColor[$i][$j])
    EndIf
    EndIf
    Next
    Next
    WEnd

    [/autoit]


    Also, wenn ihr bei Width und Heich einfach z.B. 30 und 30 angibt, dann lässt ihr es einfach mal generieren. Danach klickt auf den draw Button um zu sehen was eig. passiert.
    Ich glaube man sieht sofort wo das eigentliche Problem ist. Wisst ihr warum das kommt und wie ich das beheben kann?

  • Gitter System?

    • Freaky
    • 19. Juli 2012 um 19:41

    Danke für eure Hilfe, die Idee mit simplen Controls hatte ich auch aber gibt es da keine elegantere und schönere Lösung die wirklich ein Koordinatensystem zeigt mit Gitter etc.?

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™