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

Beiträge von UEZ

  • Like oder nicht Like - das ist die Frage!

    • UEZ
    • 16. Oktober 2014 um 16:14
    Zitat von Marthog

    Eben nicht. Die Anfaenger sollen sich ja weiterentwickeln und sinnvolle Programme schreiben statt schwer debugbaren und fehleranfaelligen Murks.
    Besonders deutlich wird das im C++-Forum, wo manche Neulinge auf low-level-Sachen wie manuelle Speicherverwaltung statt auf fertige Container setzen und einmal im Jahr taucht sogar jemand auf, der Schleifen mit goto schreibt. Fuer ihn macht das Sinn, weil "reserviere Speicher" und "springe zu" fuer einen Neuling nunmal wesentlich einfacher zu verstehen sind, als die Verwendung einer Klasse oder Schleife, aber man gewoehnt sich das von Anfang an falsch an. In AutoIt ist das nicht so schlimm, weil es keine so grossen Unterschiede zwischem elegantem und anderen Code gibt, aber auch hier erkennt z.B. nicht jeder gleich die Vorteile von Funktionen.

    Dafür ist ja ein "Like" nicht geeignet. Wenn jemand ein Like vergibt und es sein Problem erst mal löst, dann ist das ok. Aber man kann ja posten, dass ein anderer Weg besser ist.
    Ferner geht es auch nicht darum nur Lösungen zu "Liken", sondern generell, wenn ein Beitrag Wert ist "geliked" zu werden, was jedem selbst überlassen ist zu definieren, was bewertet werden kann.

    Z.B. könnte man in diesem Topic einige Aussagen, die man unterstützt "Liken", um den Beitrag zu bewerten.

    Gruß,
    UEZ

  • Like oder nicht Like - das ist die Frage!

    • UEZ
    • 16. Oktober 2014 um 14:28

    Was gut oder weniger gut ist, ist ja relativ. Wenn ein Newbie was gut findet und Oldie ehe "na ja" sagen würde, dann ist das ja aus der Sicht des Newbies ok.

    Es geht ja nicht darum, "Likes" zu sammeln, sondern eher auszudrücken, dass der Beitrag einem gefallen hat und man dafür dankt.

    Ich bin auch dafür, dass man nicht die gesammelten "Likes" im Profil sehen muss, aber der Count in dem jeweiligen Beitrag wäre gut.

    Und man muss ja nicht "Liken", sondern man kann "Liken" (jedem selbst überlassen). Wie öfters erwähnt, wird das im engl. Forum schon seit längerem gelebt und bis jetzt kann ich die hier aufgelisteten Kritikpunkte nicht sehen.

    Gruß,
    UEZ

  • Like oder nicht Like - das ist die Frage!

    • UEZ
    • 15. Oktober 2014 um 21:18

    Das ist klar, aber meistens fallen die Feedback eher bescheiden aus.

    Gruß,
    UEZ

  • Like oder nicht Like - das ist die Frage!

    • UEZ
    • 15. Oktober 2014 um 21:14

    Ich persönlich kann auf Feedback a la eBay ("Weiter so, Danke, Super gecodet, Danke für's Teilen, etc.) verzichten. Da nehme ich lieber das Daumen-hoch Feedback.

    Gruß,
    UEZ

  • Like oder nicht Like - das ist die Frage!

    • UEZ
    • 15. Oktober 2014 um 12:13

    BugFix : ich glaube, du siehst die Sache zu negativ. Ich vergebe eigentlich nur "Likes", wenn mir der Beitrag gefällt und nicht weil er ein tollen Nickname hat, ich anstatt in der Nase bohre, lieber irgendwelche Beiträge like usw. - diese User wird es immer geben, sollte aber minimal sein.

    Ich sehe da schon einen Unterschied, ob ein Beitrag 8 oder 80 Likes hat, wenn man annimmt, dass die Likes nicht aus Langeweile entstanden sind.


    Probezeit dafür ist auch ok, um einfach zu sehen, wie sich die Community bezgl. "Like" verhält. Wie lange die Probezeit sein sollte, kann man ja separat diskutieren.

    Gruß,
    UEZ

  • Like oder nicht Like - das ist die Frage!

    • UEZ
    • 15. Oktober 2014 um 08:51

    Ich bin, außer dem engl. Forum, nirgends aktiv, so dass sich meine Erfahrungen auf das engl. Forum beschränken.
    Dort kann ich keinen "Kampf" um "Likes" erkennen und die erste Antwort ist auch nicht die Beste, die geliked wird; es ist auch keine "Skriptproduktionsstätte".

    Ich finde es gut, wenn, z.B. ein eukalyptus seine D2D UDF präsentiert, ich ihm dafür ein Like für seine Arbeit geben kann. Ich denke, dass es ihm nicht um das Sammen von Likes gehen würde, sondern er Spaß am Programmieren hat. Die Summe der Likes würde die Qualität widerspiegeln. Anders herum würde auch keine Likes sagen, dass das nicht so gut war. Man muss ja nicht immer alles kommentieren.

    Das das "Like" System vielleicht missbraucht wird, um den menschlichen Sammeltrieb zu befriedigen, ist leider gegeben.


    Gruß,
    UEZ

  • Like oder nicht Like - das ist die Frage!

    • UEZ
    • 14. Oktober 2014 um 20:18
    Zitat von Make-Grafik

    Naja, ich finde es nicht so gut, genauso wie die drz. angezeigten punkte in den profilen. Dadurch besteht eine gefahr dass früher oder später eine art "wettkampf" raus wird. Merke ich schon langsam an mir selbst. Ich versuche drz. Andy in sachen assembler durchaus nachzueifern und "besser" als er zu werden. Mittlerweile bin ich schon fast abhängig vin dem forum hier, mind. jede stunde muss ich gucken was hier das drz. thema ist und ob ich was dazu beitragen kann. Wenn jetzt auch noch diese like geschichte dazu kommt könnte ich dazu neigen überheblicher zu werden.

    Ich habe das jetzt nur aus meiner perspektive beschrieben weil ich nicht für andere sprechen kann. Aber vllt. Weiß ja der eine oder andere user wie und was ich damit meine.

    Naja, ich bin dagegen weils sich auf mich negativ auswirken könnte. ^^

    Gesendet von meinem HTC Desire HD A9191 mit Tapatalk 2


    Ich persönlich kenne den "Like" Knopf aus dem engl. Forum und bis jetzt war ich nie im "Wettkampfmodus"! Aber, wenn mir ein Beitrag gefällt, dann möchte ich das auch kenntlich machen können, indem ich den "Like" Knopf drücke, so dass die "Likes" die Qualität widerspiegeln können. Viele sammeln "Likes" in dem Chat Bereich, sodass die Quantität der "Likes" nicht unbedingt auf die Skripte zurückzuführen ist.

    Wenn es den "Wettkampfmodus" fördert, umso besser. Vielleicht erhöhen sich dadurch die Qualität der Beiträge, denn einen "Like" Vote muss man sich erst "verdienen".


    Gruß,
    UEZ

  • Like oder nicht Like - das ist die Frage!

    • UEZ
    • 14. Oktober 2014 um 19:00

    Ich persönlich finde es gut, wenn man ein qualitativ guten Beitrag bewerten kann, indem man auf Like klickt. Dislike sollte es nicht geben.

    Wie denkt ihr?

    Umfrage endet am 20. Oktober 2014 um 00:00 Uhr

    Gruß,
    UEZ

  • BitXOR rückwerts

    • UEZ
    • 14. Oktober 2014 um 08:54

    So was hier?

    [autoit]


    $var = Asc("a") ; $var = 97
    $crypt = BitXOR($var - 0xF, 0xC3) ;$temp = 145 = 0x91
    $decrypt = BitXOR($crypt, 0xC3) + 0xF

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

    MsgBox(0, "Test", $var & " / " & $decrypt & " / " & Chr($decrypt))

    [/autoit]

    Wurde im Prinzip ja bereits beantwortet... :saint:

    Gruß,
    UEZ

  • WM_PAINT friert ListView ein

    • UEZ
    • 9. Oktober 2014 um 19:35

    Ich verstehe zwar kaum C/C++/C#, aber ich schaue es mir morgen an.

    Willst du die Zeile verschieben oder was genau?

    Ansonsten kannst du die hier mal näher anschauen: http://www.autoitscript.com/forum/topic/70…stview-progress http://www.autoitscript.com/forum/topic/12…rsion-9-oct-14/

    Gruß,
    UEZ

  • WM_PAINT friert ListView ein

    • UEZ
    • 9. Oktober 2014 um 19:19

    Bei mir friert nichts ein. Vielleicht liegt's daran, dass es bei mir relativ warm ist. Kann aber auch an meiner Aura liegen. :D


    Spaß bei Seite. Welches BS benutzt du?


    Gruß,
    UEZ

  • name22 ist 20

    • UEZ
    • 5. Oktober 2014 um 18:05

    Auch von mir ein "Herzlichen Glückwunsch zum Geburtstag und alles Gute".

    Gruß,
    UEZ

  • _DownloadWithProgress

    • UEZ
    • 25. September 2014 um 09:53

    Probiere es nochmals -> Post #9.

    Anscheinend ist bei dir die DPI nicht auf Standard eingestellt.

    Gruß,
    UEZ

  • _DownloadWithProgress

    • UEZ
    • 25. September 2014 um 09:16

    Klar, der Grund ist in Zeile 47 -> BitOR($WS_EX_COMPOSITED, $WS_EX_LAYERED). Einfach die BitOR durch -1 ersetzen, dann sollten die Transparenz weg sein.

    BitOR($WS_EX_COMPOSITED, $WS_EX_LAYERED) dient dazu das Flackern beim Updaten der Label zu verhindern (Double Buffering) mit dem Nebeneffekt, dass gewisse Farben transparent sind.

    Unter Win8 habe ich nicht diesen Effekt.

    Gruß,
    UEZ

  • _DownloadWithProgress

    • UEZ
    • 24. September 2014 um 23:58

    Ich war so frei und den Progressbalken geändert:

    Spoiler anzeigen
    [autoit]


    #include-once
    #include <GUIConstantsEx.au3>
    #include <GuiStatusBar.au3>
    #include <InetConstants.au3>
    #include <StaticConstants.au3>
    #include <WinAPIMisc.au3>
    #include <WindowsConstants.au3>
    #include <GDIPlus.au3>

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

    ; #INDEX# ======================================================================
    ; Title .........: _DownloadWithProgress
    ; AutoIt Version : 3.3.12.0 oder höher
    ; Date ..........: 22.09.2014
    ; Language ......: Deutsch
    ; Description ...: Download einer Datei aus dem Internet mit Progressbar und zusätzlichen Infos
    ; Author(s) .....: Oscar (http://www.autoit.de)
    ;===============================================================================

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

    ;===============================================================================
    ; Function Name: _DownloadWithProgress($sURL[, $sDownloadDir][, $sTitle][, $iLeft][, $iTop][, $hParent])
    ; Description: Download einer Datei aus dem Internet mit Progressbar und zusätzlichen Infos
    ; Parameter(s): $sURL = die komplette URL zu der Datei
    ; $sDownloadDir = das Verzeichnis, in das die Datei heruntergeladen werden soll (muss existieren!)
    ; $sTitle = Fenstertitel
    ; $iLeft und $iTop = Position für das Fenster
    ; $hParent = Handle zum Parentfenster
    ; Requirement(s): includes (siehe oben) und AutoIt-Version v3.3.12.0 oder höher
    ; Return Value(s): im Fehlerfall wird @error gesetzt:
    ; @error = 1 -> $sURL ist ein Leerstring
    ; @error = 2 -> das Downloadverzeichnis existiert nicht
    ; @error = 3 -> der Download wurde vom Benutzer abgebrochen
    ; @error = 4 -> während des Downloads ist ein Fehler aufgetreten
    ; @error = 5 -> der Speicherplatz auf dem Datenträger reicht nicht
    ; @error = 6 -> die Dateigröße konnte nicht ermittelt werden
    ; Author(s): Oscar (http://www.autoit.de)
    ;===============================================================================
    Func _DownloadWithProgress($sURL, $sDownloadDir = @ScriptDir, $sTitle = 'AutoIt-Download-Tool', $iLeft = -1, $iTop = -1, $hParent = 0)
    If $sURL = '' Then Return SetError(1, 0, 0)
    If Not FileExists($sDownloadDir) Then Return SetError(2, 0, 0)
    _GDIPlus_Startup()
    Global Const $aDPI = _GDIPlus_GraphicsGetDPIRatio()
    If StringRight($sDownloadDir, 1) <> '\' Then $sDownloadDir &= '\'
    HttpSetUserAgent('AutoIt-Download-Tool')
    Local $iOldEventMode = Opt('GUIOnEventMode', 0)
    If Not $hParent Then TraySetState(2) ; TrayIcon verstecken, wenn kein Parent angegeben wurde
    Local $iDownloadSize = 0, $aDownloadData, $iTimer = TimerInit(), $iError = 0, $iPercent = 0, $hDownload
    Local $iDownSpeedTimer = TimerInit(), $iDownSpeed = 0, $iRestTime = 0, $iOldTime = 0
    Local $hGui = GUICreate($sTitle, 400, 240, $iLeft, $iTop, -1, BitOR($WS_EX_COMPOSITED, $WS_EX_LAYERED), $hParent);BitOR($WS_EX_COMPOSITED, $WS_EX_LAYERED) mit -1 ersetzen, wenn GUI transparent wird
    GUISetIcon('shell32.dll', 18, $hGui)
    GUISetFont(10 * $aDPI[0], 400, 0, 'Arial', $hGui, 5)
    GUISetBkColor(0xD6D6D6, $hGui)
    GUICtrlCreateGroup('', 10, 5, 380, 165)
    GUICtrlCreateLabel(StringFormat('Datei: "%s"', StringRegExpReplace($sURL, '.+\/(.+)', '$1')), 25, 22, 350, 20)
    GUICtrlSetFont(-1, 12 * $aDPI[0], 400, 0, 'Arial', 5)
    Local $idDownloadSize = GUICtrlCreateLabel('Dateigröße:', 25, 50, 350, 16)
    Local $idDownloadSpeed = GUICtrlCreateLabel('Geschwindigkeit:', 25, 70, 350, 16)
    Local $idDownloadTime = GUICtrlCreateLabel('Downloadzeit:', 25, 90, 350, 16)
    Local $idRestTime = GUICtrlCreateLabel('Restzeit (geschätzt):', 25, 110, 350, 16)
    Local $iW = 360, $iH = 24, $iBGColor = 0xFEFEFE, $hHBmp_BG, $hB, $iSleep
    Local $idProgress = GUICtrlCreatePic("", 20, 138, $iW, $iH)
    Local $aColors[7][2] = [[0xFFEE5F5B, 0xFFF07673],[0xFFABCC04, 0xFFBBD636],[0xFF78CCEE, 0xFF93D6F1],[0xFFFFBB58, 0xFFFFC97A],[0xFFFF6677, 0xFFFF8795],[0xFF78CCEE, 0xFFFFC97A],[0xFF78CCEE, 0xFFE8E5D9]]
    $hHBmp_BG = _GDIPlus_StripProgressbar($iPercent, $iW, $iH, 0xFF000000 + $iBGColor, $aColors[1][0], $aColors[1][1], '')
    $hB = GUICtrlSendMsg($idProgress, 0x0172, $IMAGE_BITMAP, $hHBmp_BG)
    If $hB Then _WinAPI_DeleteObject($hB)
    _WinAPI_DeleteObject($hHBmp_BG)
    GUICtrlCreateGroup('', -99, -99, 1, 1)
    Local $idCancelButton = GUICtrlCreateButton('Download abbrechen', 120, 180, 140, 25)
    Local $hStatus = _GUICtrlStatusBar_Create($hGui)
    Local $hAttentionIcon = _WinAPI_LoadShell32Icon(77)
    Local $hOkIcon = _WinAPI_LoadShell32Icon(144)
    Local $hInfoIcon = _WinAPI_LoadShell32Icon(277)
    _GUICtrlStatusBar_SetIcon($hStatus, 0, $hInfoIcon)
    _GUICtrlStatusBar_SetText($hStatus, 'Dateigröße wird ermittelt! Bitte warten...')
    GUISetState(@SW_SHOW, $hGui)
    Local $iDriveSpaceFree = DriveSpaceFree($sDownloadDir) * 2 ^ 20 ; in Bytes umrechnen
    Local $iFileSize = InetGetSize($sURL) ; wird in Bytes ausgegeben
    If Not @error Then
    If $iDriveSpaceFree > $iFileSize Then
    _GUICtrlStatusBar_SetText($hStatus, 'Datei wird heruntergeladen...')
    $iDownSpeedTimer = TimerInit()
    GUICtrlSetData($idDownloadSize, StringFormat('Dateigröße: %s / %s', _WinAPI_StrFormatByteSize($iDownloadSize), _WinAPI_StrFormatByteSize($iFileSize)))
    GUICtrlSetData($idDownloadSpeed, StringFormat('Geschwindigkeit: %s/s', $iDownSpeed))
    $hDownload = InetGet($sURL, $sDownloadDir & StringRegExpReplace($sURL, '.+\/(.+)', '$1'), 1, 1)
    $iSleep = TimerInit()
    Do
    Switch GUIGetMsg()
    Case $idCancelButton
    $iError = 3
    ExitLoop
    Case $GUI_EVENT_CLOSE
    _WinAPI_DestroyIcon($hAttentionIcon)
    _WinAPI_DestroyIcon($hOkIcon)
    _WinAPI_DestroyIcon($hInfoIcon)
    InetClose($hDownload)
    HttpSetUserAgent('')
    Opt('GUIOnEventMode', $iOldEventMode)
    GUIDelete($hGui)
    Return SetError(3, 0, 0)
    EndSwitch
    $aDownloadData = InetGetInfo($hDownload)
    If $aDownloadData[$INET_DOWNLOADERROR] Then
    $iError = 4
    ExitLoop
    EndIf
    $iDownloadSize = $aDownloadData[$INET_DOWNLOADREAD]
    If TimerDiff($iTimer) > 250 Then
    $iDownSpeed = _WinAPI_StrFormatByteSize($iDownloadSize / TimerDiff($iDownSpeedTimer) * 1000)
    $iTimer = TimerInit()
    $iPercent = Int(100 / $iFileSize * $iDownloadSize)
    GUICtrlSetData($idDownloadSize, StringFormat('Dateigröße:\t\t%s / %s', _WinAPI_StrFormatByteSize($iDownloadSize), _WinAPI_StrFormatByteSize($iFileSize)))
    GUICtrlSetData($idDownloadSpeed, StringFormat('Geschwindigkeit:\t%s/s', $iDownSpeed))
    GUICtrlSetData($idDownloadTime, StringFormat('Downloadzeit:\t\t%s', _WinAPI_StrFromTimeInterval(TimerDiff($iDownSpeedTimer))))
    $iRestTime = ($iFileSize - $iDownloadSize) / ($iDownloadSize / TimerDiff($iDownSpeedTimer))
    If $iRestTime <> $iOldTime Then
    $iOldTime = $iRestTime
    GUICtrlSetData($idRestTime, StringFormat('Restzeit (geschätzt):\t%s', _WinAPI_StrFromTimeInterval($iRestTime)))
    EndIf
    EndIf
    If TimerDiff($iSleep) > 50 Then
    $hHBmp_BG = _GDIPlus_StripProgressbar($iPercent, $iW, $iH, 0xFF000000 + $iBGColor, $aColors[1][0], $aColors[1][1], $iPercent & '%')
    $hB = GUICtrlSendMsg($idProgress, 0x0172, $IMAGE_BITMAP, $hHBmp_BG)
    If $hB Then _WinAPI_DeleteObject($hB)
    _WinAPI_DeleteObject($hHBmp_BG)
    $iSleep = TimerInit()
    EndIf
    Until $aDownloadData[$INET_DOWNLOADCOMPLETE]
    If $iError Then
    $hHBmp_BG = _GDIPlus_StripProgressbar($iPercent, $iW, $iH, 0xFF000000 + $iBGColor, $aColors[0][0], $aColors[0][1], $iPercent & '%')
    $hB = GUICtrlSendMsg($idProgress, 0x0172, $IMAGE_BITMAP, $hHBmp_BG)
    If $hB Then _WinAPI_DeleteObject($hB)
    _WinAPI_DeleteObject($hHBmp_BG)
    _GUICtrlStatusBar_SetIcon($hStatus, 0, $hAttentionIcon)
    _GUICtrlStatusBar_SetText($hStatus, 'Download abgebrochen!')
    Else
    GUICtrlSetData($idDownloadSize, StringFormat('Dateigröße:\t\t%s / %s', _WinAPI_StrFormatByteSize($iDownloadSize), _WinAPI_StrFormatByteSize($iFileSize)))
    GUICtrlSetData($idDownloadSpeed, StringFormat('Geschwindigkeit:\t%s/s', $iDownSpeed))
    _GUICtrlStatusBar_SetIcon($hStatus, 0, $hOkIcon)
    _GUICtrlStatusBar_SetText($hStatus, 'Download abgeschlossen!')
    $hHBmp_BG = _GDIPlus_StripProgressbar(100, $iW, $iH, 0xFF000000 + $iBGColor, $aColors[1][0], $aColors[1][1], '100%')
    $hB = GUICtrlSendMsg($idProgress, 0x0172, $IMAGE_BITMAP, $hHBmp_BG)
    If $hB Then _WinAPI_DeleteObject($hB)
    _WinAPI_DeleteObject($hHBmp_BG)
    EndIf
    InetClose($hDownload)
    Else
    $iError = 5
    _GUICtrlStatusBar_SetIcon($hStatus, 0, $hAttentionIcon)
    _GUICtrlStatusBar_SetText($hStatus, 'Fehler! Nicht genug Platz auf dem Datenträger!')
    EndIf
    Else
    $iError = 6
    _GUICtrlStatusBar_SetIcon($hStatus, 0, $hAttentionIcon)
    _GUICtrlStatusBar_SetText($hStatus, 'Fehler! Dateigröße konnte nicht ermittelt werden!')
    EndIf
    GUICtrlSetData($idCancelButton, 'Fenster schließen')
    While True
    Switch GUIGetMsg()
    Case $idCancelButton, $GUI_EVENT_CLOSE
    _WinAPI_DestroyIcon($hAttentionIcon)
    _WinAPI_DestroyIcon($hOkIcon)
    _WinAPI_DestroyIcon($hInfoIcon)
    HttpSetUserAgent('')
    Opt('GUIOnEventMode', $iOldEventMode)
    GUIDelete($hGui)
    _GDIPlus_Shutdown()
    Return SetError($iError, 0, 0)
    EndSwitch
    WEnd
    EndFunc ;==>_DownloadWithProgress

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

    Func _GDIPlus_StripProgressbar($fPerc, $iW, $iH, $iBgColorGui = 0xFFF0F0F0, $iFgColor = 0xFFEE5F5B, $iBGColor = 0xFFF07673, $sText = "Loading...", $iTextColor = 0x000000, $iDir = -1, $iSpeed = 1, $sFont = "Arial", $bFlip = False, $bHBitmap = True)
    $fPerc = $fPerc < 0 ? 0 : $fPerc
    $fPerc = $fPerc > 100 ? 100 : $fPerc

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

    Local $hBitmap = _GDIPlus_BitmapCreateFromScan0($iW, $iH)
    Local Const $hCtxt = _GDIPlus_ImageGetGraphicsContext($hBitmap)
    _GDIPlus_GraphicsSetPixelOffsetMode($hCtxt, $GDIP_PIXELOFFSETMODE_HIGHQUALITY)
    _GDIPlus_GraphicsClear($hCtxt, $iBgColorGui)

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

    Local $iWidth = $iH * 2, $iLen = $iWidth / 2, $iY
    Local $hBmp = _GDIPlus_BitmapCreateFromScan0($iWidth, $iH)
    Local Const $hCtxt_Bmp = _GDIPlus_ImageGetGraphicsContext($hBmp)
    _GDIPlus_GraphicsSetPixelOffsetMode($hCtxt_Bmp, $GDIP_PIXELOFFSETMODE_HIGHQUALITY)
    Local $hPen = _GDIPlus_PenCreate($iFgColor), $iPenSize = Int($iH / 12)
    Local $hPen2 = _GDIPlus_PenCreate(0x50000000, $iPenSize)

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

    _GDIPlus_GraphicsClear($hCtxt_Bmp, $iBGColor)
    Local Static $iX = 0
    For $iY = 0 To $iH - 1
    Switch $iDir
    Case 1
    _GDIPlus_GraphicsDrawLine($hCtxt_Bmp, $iX + $iY, $iY, $iX + $iY + $iLen, $iY, $hPen)
    _GDIPlus_GraphicsDrawLine($hCtxt_Bmp, $iX + $iY - 2 * $iLen, $iY, $iX + $iY - 1 * $iLen, $iY, $hPen)
    Case Else
    _GDIPlus_GraphicsDrawLine($hCtxt_Bmp, -$iX + $iY, $iY, -$iX + $iY + $iLen, $iY, $hPen)
    _GDIPlus_GraphicsDrawLine($hCtxt_Bmp, -$iX + $iY + 2 * $iLen, $iY, -$iX + $iY + 3 * $iLen, $iY, $hPen)
    EndSwitch
    Next
    Local $tPoint1 = DllStructCreate("float;float")
    Local $tPoint2 = DllStructCreate("float;float")
    DllStructSetData($tPoint1, 1, $iW / 2) ;x1
    DllStructSetData($tPoint2, 1, $iW / 2) ;x2
    Local $hLineBrush

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

    If $bFlip Then
    _GDIPlus_GraphicsDrawLine($hCtxt_Bmp, 0, 0, $iWidth, 0, $hPen2)
    DllStructSetData($tPoint1, 2, $iH / 3) ;y1
    DllStructSetData($tPoint2, 2, $iH * 2 / 3) ;y2
    $hLineBrush = DllCall($__g_hGDIPDll, "uint", "GdipCreateLineBrush", "struct*", $tPoint1, "struct*", $tPoint2, "uint", 0x00FFFFFF, "uint", 0xB0FFFFFF, "int", 0, "int*", 0)
    $hLineBrush = $hLineBrush[6]
    _GDIPlus_GraphicsFillRect($hCtxt_Bmp, 0, $iH * 2 / 3 + 1, $iW, $iH / 3, $hLineBrush)
    Else
    _GDIPlus_GraphicsDrawLine($hCtxt_Bmp, 0, $iH - $iPenSize / 2, $iWidth, $iH - $iPenSize / 2, $hPen2)
    DllStructSetData($tPoint1, 2, 0) ;y1
    DllStructSetData($tPoint2, 2, $iH / 3) ;y2
    $hLineBrush = DllCall($__g_hGDIPDll, "uint", "GdipCreateLineBrush", "struct*", $tPoint1, "struct*", $tPoint2, "uint", 0xB0FFFFFF, "uint", 0x00FFFFFF, "int", 0, "int*", 0)
    $hLineBrush = $hLineBrush[6]
    _GDIPlus_GraphicsFillRect($hCtxt_Bmp, 0, 0, $iW, $iH / 3, $hLineBrush)
    EndIf
    $iX = Mod($iX + $iSpeed, $iWidth)

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

    Local $hTextureBrush = _GDIPlus_TextureCreate($hBmp)

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

    _GDIPlus_GraphicsFillRect($hCtxt, 0, 0, $fPerc / 100 * $iW, $iH, $hTextureBrush)
    If $bFlip Then _GDIPlus_ImageRotateFlip($hBitmap, 6)
    _GDIPlus_GraphicsSetTextRenderingHint($hCtxt, 4)

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

    Local $hBrush = _GDIPlus_BrushCreateSolid(0xE0000000 + $iTextColor)
    Local $hFormat = _GDIPlus_StringFormatCreate()
    Local $hFamily = _GDIPlus_FontFamilyCreate($sFont)
    Local $hFont = _GDIPlus_FontCreate($hFamily, $iH * 3 / 7)
    Local $tLayout = _GDIPlus_RectFCreate(0, 0, $iW, $iH)
    _GDIPlus_StringFormatSetAlign($hFormat, 1)
    _GDIPlus_StringFormatSetLineAlign($hFormat, 1)
    _GDIPlus_GraphicsDrawStringEx($hCtxt, $sText, $hFont, $tLayout, $hFormat, $hBrush)

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

    _GDIPlus_FontDispose($hFont)
    _GDIPlus_FontFamilyDispose($hFamily)
    _GDIPlus_StringFormatDispose($hFormat)
    _GDIPlus_BrushDispose($hBrush)
    _GDIPlus_PenDispose($hPen)
    _GDIPlus_PenDispose($hPen2)
    _GDIPlus_GraphicsDispose($hCtxt)
    _GDIPlus_GraphicsDispose($hCtxt_Bmp)
    _GDIPlus_BitmapDispose($hBmp)
    _GDIPlus_BrushDispose($hTextureBrush)
    _GDIPlus_BrushDispose($hLineBrush)
    If $bHBitmap Then
    Local $hHBITMAP = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBitmap)
    _GDIPlus_BitmapDispose($hBitmap)
    Return $hHBITMAP
    EndIf
    Return $hBitmap
    EndFunc ;==>_GDIPlus_StripProgressbar

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

    Func _GDIPlus_GraphicsGetDPIRatio($iDPIDef = 96)
    Local $hGfx = _GDIPlus_GraphicsCreateFromHWND(0)
    If @error Then Return SetError(1, @extended, 0)
    Local $aResult = DllCall($__g_hGDIPDll, "int", "GdipGetDpiX", "handle", $hGfx, "float*", 0)
    If @error Then Return SetError(2, @extended, 0)
    Local $iDPI = $aResult[2]
    _GDIPlus_GraphicsDispose($hGfx)
    Local $aResults[2] = [$iDPIDef / $iDPI, $iDPI / $iDPIDef]
    Return $aResults
    EndFunc ;==>_GDIPlus_GraphicsGetDPIRatio

    [/autoit]

    Nette UDF. :thumbup:

    Gruß,
    UEZ

  • Probleme mit einer Funktion, Fehlermeldung "Unknown function name"

    • UEZ
    • 23. September 2014 um 11:17

    Verschiebe

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

    #include <WinAPISys.au3>

    [/autoit]

    zur Zeile 1.

    Gruß,
    UEZ

  • x86, x64 - Kompilieren wann und wie

    • UEZ
    • 13. September 2014 um 20:25

    Ich denke, dass der Intepreter die Skriptanweisungen im nativen 64-Bit Modus ausführt (64-Bit Instruktionen). Das Ergebnis sollte das Gleiche wie x86 sein, nur, wie gesagt, läuft die Exe im 64-Bit Modus.

    Theoretisch sollte die 64-Bit Version schneller laufen, aber das tut sie i.d.R. nicht.


    Irgendwann wird es wohl keine x86 Executables mehr geben, wie heute die alten 16-Bit Programme, aber bis dahin werden wohl noch einige Jahre vergehen.

    Gruß,
    UEZ

  • RegEx-Pattern in VBA mit anderer "Logik"?

    • UEZ
    • 11. September 2014 um 23:24

    Ich hatte auch mal das "Vergnügen" in Excel was in VBA zu coden, und zwar wollte ich in einer Zelle <text1> to <text2> tauschen -> <text2> to <text1> .

    Ich musste bei mehreren Zeilen erst mal den Text nach crlf splitten und die Zeilen sukzessive nach dem RegEx Pattern durchsuchen.

    Vielleicht kannst du damit was anfangen:

    Code
    Sub Swap_Coordinate() 'v1.0 coded by UEZ
        Dim RegExsult As String
        Dim allMatches As Object
        Dim innerMatches As Object
        Dim RegEx As Object 'New VBScript_RegExp_55.RegExp 'Tools -> References -> Microsoft VBScript Regular Expression 5.5
        Set RegEx = CreateObject("VBScript.RegExp")
        Dim iMultiLine As Integer
        Dim iCurrent As Integer
        RegExsult = ""
        iCurrent = 0
    
        RegEx.Pattern = "(\n)"
        RegEx.Global = True
        RegEx.IgnoreCase = True
        Set allMatches = RegEx.Execute(ActiveCell.Text)
        iMultiLine = allMatches.Count
    
        If iMultiLine = 0 Then
            RegEx.Pattern = "(.*) to (.*)"
            Set allMatches = RegEx.Execute(ActiveCell.Text)
            If allMatches.Count > 0 Then
                RegExsult = allMatches.Item(0).subMatches.Item(1) & " to " & allMatches.Item(0).subMatches.Item(0) & " " & allMatches.Item(0).subMatches.Item(2)
                ActiveCell.Value = RegExsult
            End If
        Else
            RegEx.Pattern = "(.*)\n?"
            Set allMatches = RegEx.Execute(ActiveCell.Text)
            Do While iCurrent <= iMultiLine
                If RegExsult <> "" Then
                    RegExsult = RegExsult & Chr(13) & Chr(10)
                End If
                RegEx.Pattern = "(.*) to (.*)( free .*)"
                Set innerMatches = RegEx.Execute(allMatches.Item(iCurrent))
                If innerMatches.Count = 0 Then
                    RegEx.Pattern = "(.*) to (.*)"
                    Set innerMatches = RegEx.Execute(allMatches.Item(iCurrent))
                    RegExsult = RegExsult & innerMatches.Item(0).subMatches.Item(1) & " to " & innerMatches.Item(0).subMatches.Item(0)
                Else
                    RegExsult = RegExsult & innerMatches.Item(0).subMatches.Item(1) & " to " & innerMatches.Item(0).subMatches.Item(0) & innerMatches.Item(0).subMatches.Item(2)
                End If
                iCurrent = iCurrent + 1
            Loop
            ActiveCell.Value = RegExsult
        End If
    
        Set allMatches = Nothing
        Set innerMatches = Nothing
        Set RegEx = Nothing
    End Sub
    Alles anzeigen

    Ich hatte auch damals BugFix um Hilfe geben -> danke nochmals. :thumbup: , denn mit dem VBA "gedöns" bin ich nicht so richtig vertraut.

    Gruß,
    UEZ

  • GDIPlus verschwindet

    • UEZ
    • 9. September 2014 um 14:09

    Suche mal nach WM_Paint und gdiplus. Du musst die Graphic neu zeichnen.

    Gruß,
    UEZ

  • _StringMatch - Strings logisch durchsuchen

    • UEZ
    • 30. August 2014 um 11:15

    Interessante Funktion minx - sollte von Nutzen sein, wenn man Strings logisch durchsuchen möchte. :thumbup:

    Danke für's Teilen.


    Gruß,
    UEZ

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™