Bei _ArrayDisplay greift folgendes AutoIt-Limit:
GUI_MAXCONTROLS 65532 Maximum number of controls in GUI box.
Man kann in einer Anwendung einfach nicht mehr als 65532 Controls erzeugen.
Aber man könnte _ArrayDisplay umbauen, damit es mit der GuiListView-UDF läuft, dann greift diese Grenze nicht mehr, da dann keine 'Controls' für jedes Item erstellt werden.
Beiträge von funkey
-
-
Besser wäre DWORD_PTR anstelle von INT_PTR zu verwenden, das macht einen Unterschied auf x86 und x64 Systemen.
-
So hätte es auch funktioniert, war mir aber viel zu kompliziert:
Spoiler anzeigen
[autoit]Func _GetComputerName()
[/autoit]
$fkernel32 = @SystemDir & "\" & "kernel32.dll"
$function = "GetComputerName"
$MaxLength = 15
$lpBuffer = DllStructCreate("char[" & $MaxLength + 2 & "]")
$nSize = DllStructCreate("int nSize")
DllStructSetData($nSize, 1, $MaxLength)
$dll = DllOpen($fkernel32)
$return = DllCall($dll, "int", $function, "ptr", DllStructGetPtr($lpBuffer), "int_ptr", DllStructGetPtr($nSize))
DllClose($dll)
Return DllStructGetData($lpBuffer,1)
EndFuncAußerdem:
'int*, 100' heißt nicht, dass ein Pointer eines Integers mit der Adresse 100 übergeben wird, sondern, dass die Variable ByRef übergeben wird und so von der Funktion verändert werden kann. AutoIt macht alles automatisch, damit der Funktion ein Pointer übergeben wird. -
Das geht auch viel einfacher:
[autoit]$sCN = _GetComputerName()
[/autoit][autoit][/autoit][autoit]
ConsoleWrite($sCN & @CRLF)Func _GetComputerName()
[/autoit][autoit][/autoit][autoit][/autoit]
Local $iLen = 100
$aRet = DllCall("kernel32.dll", "int", "GetComputerName", "str", "", "int*", $iLen)
Return $aRet[1]
EndFunc -
Nach über 3 Monaten warten auf eine Antwort ....
Was läuft denn nicht bei meinem Beispiel?? -
-
[autoit][/autoit] [autoit][/autoit] [autoit]Alles anzeigen
;i UBound in der Schleife verursacht
[/autoit] [autoit][/autoit] [autoit]
;i Mehrfachaufrufe (bei jedem $i) und das Prog. wird unnötig gebremst
For $i = 0 To UBound($aInput) - 1
$aInput[$i][0] = GUICtrlCreateInput("", 20, 20 + ($i * 40), 200, 20)
Next;i Besser so:
[/autoit]
$UBoundaInput = UBound($aInput) - 1 ;i einmalige UBoundabfrage
For $i = 0 To $UBoundaInput ;i statisch kein UBound
$aInput[$i][0] = GUICtrlCreateInput("", 20, 20 + ($i * 40), 200, 20)
NextWenn das so ist, dann wäre das eine Endlosschleife, oder?
[autoit]#include <Array.au3>
[/autoit][autoit][/autoit][autoit]Global $aArray[3] = [1, 2, 3]
[/autoit][autoit][/autoit][autoit]For $i = 0 To UBound($aArray) - 1
[/autoit][autoit][/autoit][autoit]
_ArrayAdd($aArray, $i + 3)
ConsoleWrite($aArray[$i] & @CRLF)
Next_ArrayDisplay($aArray)
[/autoit] -
Du könntest ja trotzdem Die Acceleratoren nehmen, und dann bei Enter mit GuiCtrlGetState($nEdit) auf $GUI_FOCUS prüfen und sonst die Funktion beenden. Also ohne Schleife.
-
Also ich habe keine Probleme mit Scite4AutoIt und bin für die Meldungen dankbar.
-
[autoit]
_ColorConvertHSLtoRGB
[/autoit]
_ColorConvertRGBtoHSL -
Auch von mir alles Gute zum Geburtstag!!

-
Was soll das hier!
Das ist absolut gegen die Regeln, ganz egal wie 'harmlos' das ganze zu sein scheint.@Tim29057: Da gibt es nichts zu meckern! Halte dich daran!

-
Unter View - Parameter kannst du das einstellen was du brauchst.
Edit: Shift + F8

-
Spoiler anzeigen
[autoit]#include <GuiTab.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstantsEx.au3>Opt("GUIResizeMode", $GUI_DOCKBORDERS)
[/autoit] [autoit][/autoit] [autoit]Global $hGui = GUICreate("Test", 500, 500)
[/autoit] [autoit][/autoit] [autoit]Global $nTab = GUICtrlCreateTab(10, 10, 480, 480)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Global $hTab = GUICtrlGetHandle(-1)
Global $nItem1 = GUICtrlCreateTabItem("Tab1")
Global $nItem2 = GUICtrlCreateTabItem("Tab2")
Global $nItem3 = GUICtrlCreateTabItem("Tab3")
Global $nItem4 = GUICtrlCreateTabItem("Tab4")
GUICtrlCreateTabItem("")Global $aWidth[4] = [480, 550, 200, 400]
[/autoit] [autoit][/autoit] [autoit]GUISetState()
[/autoit] [autoit][/autoit] [autoit]Global $sMsg, $iTab
[/autoit] [autoit][/autoit] [autoit]
Global $iBorderY, $iBorderX
_SystemGetWindowBorder($iBorderY, $iBorderX)While 1
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$sMsg = GUIGetMsg()
Switch $sMsg
Case -3
Exit
Case $nTab
$iTab = _GUICtrlTab_GetCurSel($hTab)
WinMove($hGui, "", Default, Default, $aWidth[$iTab] + 20 + $iBorderX, 500 + $iBorderY)
EndSwitch
WEndFunc _SystemGetWindowBorder(ByRef $_iTopBorder, ByRef $_iSideBorder)
[/autoit]
; == by BugFix
Local Const $SM_CYCAPTION = 4, $SM_CYEDGE = 46, $SM_CYBORDER = 6, $SM_CXBORDER = 5, $SM_CXEDGE = 45
Local $aMetrics[5][2] = [[$SM_CYCAPTION], [$SM_CYEDGE], [$SM_CYBORDER], [$SM_CXBORDER], [$SM_CXEDGE]]
Local $dll = DllOpen("user32.dll"), $aRet
For $i = 0 To 4
$aRet = DllCall($dll, "int", "GetSystemMetrics", "int", $aMetrics[$i][0])
If IsArray($aRet) Then $aMetrics[$i][1] = $aRet[0]
Next
DllClose($dll)
$_iTopBorder = $aMetrics[0][1] + $aMetrics[1][1] + $aMetrics[2][1]
$_iSideBorder = $aMetrics[3][1] + $aMetrics[4][1]
EndFunc -
Das gibt es sicher schon einige Male, aber ich hab's schnell nochmal gemacht.
Spoiler anzeigen
[autoit]HotKeySet("+{ESC}", "_AbortCopy") ;Shift+Escape
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Global $iAbort = 0
Global $iOK = _FileCopyEx("large.zip", "large_copy.zip", "_Callback")Func _FileCopyEx($sSource, $sDest, $sCallback, $iOverWrite = 1, $iStepBytes = 8388608)
[/autoit] [autoit][/autoit] [autoit]
If StringInStr(FileGetAttrib($sDest), "D") Then $sDest &= StringTrimLeft($sSource, StringInStr($sSource, "\", 0, -1) - 1)
If $iOverWrite = 0 And FileExists($sDest) Then Return 1Local $hSource = FileOpen($sSource, 16)
[/autoit] [autoit][/autoit] [autoit]
If $hSource = -1 Then Return SetError(1, 0, 0)If FileExists($sDest) Then FileDelete($sDest)
[/autoit] [autoit][/autoit] [autoit]Local $hDest = FileOpen($sDest, 17)
[/autoit] [autoit][/autoit] [autoit]
If $hDest = -1 Then
FileClose($hSource)
Return SetError(2, 0, 0)
EndIfLocal $iSize = FileGetSize($sSource)
[/autoit] [autoit][/autoit] [autoit]
Local $iMod = Mod($iSize, $iStepBytes)
Local $iCount = Int(Floor($iSize / $iStepBytes))
Local $bTempFor $i = 1 To $iCount
[/autoit] [autoit][/autoit] [autoit]
If Call($sCallback, $i * $iStepBytes, $iSize) = 0 Then ;Abort
FileClose($hSource)
FileClose($hDest)
FileDelete($sDest)
Return SetError(3, 0, 0)
EndIf$bTemp = FileRead($hSource, $iStepBytes)
[/autoit] [autoit][/autoit] [autoit]
FileWrite($hDest, $bTemp)
NextIf $iMod <> 0 Then
[/autoit] [autoit][/autoit] [autoit]
$bTemp = FileRead($hSource, $iMod)
FileWrite($hDest, $bTemp)
EndIfFileClose($hSource)
[/autoit] [autoit][/autoit] [autoit]
FileClose($hDest)Return SetError(0, 0, 1)
[/autoit] [autoit][/autoit] [autoit]
EndFuncFunc _Callback($iBytesCopied, $iBytesTotal)
[/autoit] [autoit][/autoit] [autoit]
ConsoleWrite(StringFormat("Bytes copied: %i / %i", $iBytesCopied, $iBytesTotal) & @CRLF)
;Hier die jeweilige Abbruchbedingung einbauen
If $iAbort = 1 Then
Return 0 ;Abort
Else
Return 1 ;Continue
EndIf
EndFuncFunc _AbortCopy()
[/autoit] [autoit][/autoit] [autoit][/autoit]
$iAbort = 1
EndFunc -
-
GDIpProgress.au3
[autoit]#cs ----------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]AutoIt Version: 3.2.12.0
[/autoit] [autoit][/autoit] [autoit]
Author: Prog@ndy
after Script from nobbe ( 2008 in http://www.autoitscript.com/forum/index.ph…ndpost&p=485031 )Script Function: A UDF for colored Progressbars with GDIPlus
[/autoit] [autoit][/autoit] [autoit]Remarks: Theres an example from Line 22 to line 112 ( between the first #Region - #Endregion Tags
[/autoit] [autoit][/autoit] [autoit]#ce ----------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]#include-once
[/autoit] [autoit][/autoit] [autoit]
#include <GuiConstants.au3>
#include <WIndowsConstants.au3>
#include <EditConstants.au3>
#include <WinApi.au3>
#include <GdiPlus.au3>Global $_Progress_ahCallBack[3] = [-1, -1, 0], $_Progress_Bars[1][15] = [[-1]], $iPercent = 0;
[/autoit] [autoit][/autoit] [autoit]#EndRegion EXAMPLE
[/autoit] [autoit][/autoit] [autoit]
;##################################################;-------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]
#Region Colored Progressbar
;===============================================================================
;
; Function Name: _ProgressCreate
; Description:: Creates a GDIplus Progressbar
; Parameter(s): $x : left
; $y : top
; $w : width
; $h : height
; $Col : [Optional] Top color of the foreground gradient
; $GradCol : [Optional] Bottom color of the foreground gradient
; $BG : [Optional] Top color of the background gradient
; $GradBG : [Optional] Bottom color of the background gradient
; Requirement(s): GDIplus
; Return Value(s): Success: ID of Progressbar, Error: 0
; Author(s): Prog@ndy
;
;===============================================================================
;
Func _ProgressCreate($x, $y, $w = 204, $h = 24, $Col = 0xFFFF00, $GradCol = 0x00FF00, $BG = 0xAAAA00, $GradBG = 0xFF0000)
__CheckForGDIPlus()
$ID = UBound($_Progress_Bars)
ReDim $_Progress_Bars[$ID + 1][15]
$_Progress_Bars[$ID][0] = GUICtrlCreateLabel("", $x, $y, $w, $h)
GUICtrlSetStyle(-1,0)
GUICtrlSetBkColor($_Progress_Bars[$ID][0], -2) ; $GUI_BKCOLOR_TRANSPARENT = -2
If @error Then Return SetError(@error, @extended, 0)
If $Col = -1 Then $Col = 0xFFFF00
If $BG = -1 Then $BG = 0xAAAA00
If $GradCol = -1 Then $GradCol = 0x00FF00
If $GradBG = -1 Then $GradBG = 0xFF0000
_GDIPlus_Startup()
Local $graphic = _GDIPlus_GraphicsCreateFromHWND(GUICtrlGetHandle($_Progress_Bars[$ID][0]))
Local $bitmap = _GDIPlus_BitmapCreateFromGraphics($w, $h, $graphic)
Local $backbuffer = _GDIPlus_ImageGetGraphicsContext($bitmap)Local $bmpfront = _GDIPlus_BitmapCreateFromGraphics($w, $h, $graphic)
[/autoit] [autoit][/autoit] [autoit]
_CreateGradientImg($bmpfront, $w - 1, $h - 1, $Col, $GradCol)
$_Progress_Bars[$ID][11] = _GDIPlus_ImageGetWidth($bmpfront)
$_Progress_Bars[$ID][12] = _GDIPlus_ImageGetHeight($bmpfront)Local $bmpBack = _GDIPlus_BitmapCreateFromGraphics($w, $h, $graphic)
[/autoit] [autoit][/autoit] [autoit]
_CreateGradientImg($bmpBack, $w - 1, $h - 1, $BG, $GradBG)
$_Progress_Bars[$ID][13] = _GDIPlus_ImageGetWidth($bmpBack)
$_Progress_Bars[$ID][14] = _GDIPlus_ImageGetHeight($bmpBack)$_Progress_Bars[$ID][1] = $w
[/autoit] [autoit][/autoit] [autoit]
$_Progress_Bars[$ID][2] = $h$_Progress_Bars[$ID][3] = $graphic
[/autoit] [autoit][/autoit] [autoit]
$_Progress_Bars[$ID][4] = $bitmap
$_Progress_Bars[$ID][5] = $backbuffer
$_Progress_Bars[$ID][6] = $bmpfront
$_Progress_Bars[$ID][7] = $bmpBack
$_Progress_Bars[$ID][8] = 0
$_Progress_Bars[$ID][9] = 1
$_Progress_Bars[$ID][10] = "Arial|10|1|0xFF000000|0"
_ProgressRefresh($ID, 0)
_Progress_CallBack_Init()
Return SetError(0, 0, $ID)
EndFunc ;==>_ProgressCreate;===============================================================================
[/autoit] [autoit][/autoit] [autoit]
;
; Function Name: _ProgressDelete
; Description:: Deletes a GDI+ Progressbar
; Parameter(s): $ID : ID of Progressbar
; Requirement(s): GDIplus
; Return Value(s): Sucess: 1, Error: 0
; Author(s): Prog@ndy
;
;===============================================================================
;
Func _ProgressDelete(ByRef $ID)
If Not IsArray($_Progress_Bars) Or UBound($_Progress_Bars, 2) <> 15 Or $ID > (UBound($_Progress_Bars)-1) Then Return SetError(1, 0, 0)
If $_Progress_Bars[$ID][0] = -1 Then Return SetError(-1,0,0)
_Progress_CallBack_Free()
Local $temp[9],$i
FoR $i = 0 To 8
$temp[$i] = $_Progress_Bars[$ID][$i]
Next
$_Progress_Bars[$ID][0] = -1
Local $ret = GUICtrlDelete($temp[0])
If @error Then Return SetError(1,0,0)
$_Progress_Bars[$ID][1] = -1
$_Progress_Bars[$ID][2] = -1$_Progress_Bars[$ID][3] = -1
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
_GDIPlus_GraphicsDispose($temp[3])
Local $error = @error
$_Progress_Bars[$ID][4] = -1
_WinAPI_DeleteObject($temp[4])
Local $error = @error
$_Progress_Bars[$ID][5] = -1
_GDIPlus_GraphicsDispose($temp[5])
Local $error = @error
$_Progress_Bars[$ID][6] = -1
_WinAPI_DeleteObject($temp[6])
Local $error = @error
_GDIPlus_ImageDispose($temp[6])
Local $error = @error
$_Progress_Bars[$ID][7] = -1
_WinAPI_DeleteObject($temp[7])
Local $error = @error
_GDIPlus_ImageDispose($temp[7])
$_Progress_Bars[$ID][8] = -1_GDIPlus_Shutdown()
[/autoit] [autoit][/autoit] [autoit]
Return SetError($error, 0, $error=0)
EndFunc ;==>_ProgressDelete;===============================================================================
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
;
; Function Name: _ProgressSetColors(
; Description:: Sets gradients as foreground and background
; Parameter(s): $ID : ID of Progressbar
; $Col : Top color of the foreground gradient
; $GradCol : Bottom color of the foreground gradient
; $BG : Top color of the background gradient
; $GradBG : Bottom color of the background gradient
; If $Col or $GradCol is -1, the foreground gradient isn't changed
; If $BG or $GradBG is -1, the background gradient isn't changed
; Requirement(s): Winapi.au3, GDIplus
; Return Value(s): Success: 1, Error: 0
; Author(s): Prog@ndy
;
;===============================================================================
;
Func _ProgressSetColors(ByRef $ID, $Col = -1, $GradCol = -1, $BG = -1, $GradBG = -1)
If Not IsArray($_Progress_Bars) Or UBound($_Progress_Bars, 2) <> 15 Or $ID > (UBound($_Progress_Bars)-1) Then Return SetError(1, 0, 0)
If Execute($Col) > -1 And Execute($GradCol) > -1 Then
_WinAPI_DeleteObject($_Progress_Bars[$ID][6])
_GDIPlus_ImageDispose($_Progress_Bars[$ID][6])
$_Progress_Bars[$ID][6] = _GDIPlus_BitmapCreateFromGraphics($_Progress_Bars[$ID][1], $_Progress_Bars[$ID][2], $_Progress_Bars[$ID][3])
_CreateGradientImg($_Progress_Bars[$ID][6], $_Progress_Bars[$ID][1] - 1, $_Progress_Bars[$ID][2] - 1, $Col, $GradCol)
$_Progress_Bars[$ID][11] = $_Progress_Bars[$ID][1]
$_Progress_Bars[$ID][12] = $_Progress_Bars[$ID][2]
EndIf
If Execute($BG) > -1 And Execute($GradBG) > -1 Then
_WinAPI_DeleteObject($_Progress_Bars[$ID][7])
_GDIPlus_ImageDispose($_Progress_Bars[$ID][7])
$_Progress_Bars[$ID][7] = _GDIPlus_BitmapCreateFromGraphics($_Progress_Bars[$ID][1], $_Progress_Bars[$ID][2], $_Progress_Bars[$ID][3])
_CreateGradientImg($_Progress_Bars[$ID][7], $_Progress_Bars[$ID][1] - 1, $_Progress_Bars[$ID][2] - 1, $BG, $GradBG)
$_Progress_Bars[$ID][13] = $_Progress_Bars[$ID][1]
$_Progress_Bars[$ID][14] = $_Progress_Bars[$ID][2]
EndIf
;~ _ProgressSet($ID, $_Progress_Bars[$ID][8])
Return SetError(@error, 0, @error = 0)
EndFunc ;==>_ProgressSetColors;===============================================================================
[/autoit] [autoit][/autoit] [autoit]
;
; Function Name: _ProgressSetImages(
; Description:: Sets images as foreground and background by Path
; Parameter(s): $ID : ID of Progressbar
; $ForeBmp : Path to image , empty String "" To leave the old
; The foreground image
; $BackBmp : [Optional] Path to image , empty String "" To leave the old
; The background image
; Requirement(s): Winapi.au3, GDIplus
; Return Value(s): Success: 1, Error: 0
; Author(s): Prog@ndy
;
;===============================================================================
;
Func _ProgressSetImages(ByRef $ID, $ForeBmp = "", $backBMP = "")
Local $bmp = ""
If Not IsArray($_Progress_Bars) Or UBound($_Progress_Bars, 2) <> 15 Or $ID > (UBound($_Progress_Bars)-1) Then Return SetError(1, 0, 0)
If GUICtrlGetHandle($_Progress_Bars[$ID][0]) = 0 Then Return SetError(2, 0, 0)
If $ForeBmp <> "" And FileExists($ForeBmp) Then
$bmp = _GDIPlus_ImageLoadFromFile($ForeBmp)
If Not @error Then
;~ _WinAPI_DeleteObject($_Progress_Bars[$ID][6])
_GDIPlus_ImageDispose($_Progress_Bars[$ID][6])
$_Progress_Bars[$ID][6] = $bmp
$_Progress_Bars[$ID][11] = _GDIPlus_ImageGetWidth($_Progress_Bars[$ID][6])
$_Progress_Bars[$ID][12] = _GDIPlus_ImageGetHeight($_Progress_Bars[$ID][6])
EndIf
EndIf
If $backBMP <> "" And FileExists($backBMP) Then
$bmp = _GDIPlus_ImageLoadFromFile($backBMP)
If Not @error Then
;~ _WinAPI_DeleteObject($_Progress_Bars[$ID][7])
_GDIPlus_ImageDispose($_Progress_Bars[$ID][7])
$_Progress_Bars[$ID][7] = $bmp
$_Progress_Bars[$ID][13] = _GDIPlus_ImageGetWidth($_Progress_Bars[$ID][7])
$_Progress_Bars[$ID][14] = _GDIPlus_ImageGetHeight($_Progress_Bars[$ID][7])
EndIf
EndIf
;~ _ProgressSet($ID, $_Progress_Bars[$ID][8])
Return SetError(@error, 0, @error = 0)
EndFunc ;==>_ProgressSetImages;===============================================================================
[/autoit] [autoit][/autoit] [autoit]
;
; Function Name: _ProgressSetHBitmaps(
; Description:: Sets previously loaded GDIplus Images / bitmaps as foreground and background
; Parameter(s): $ID : ID of Progressbar
; $ForeBmp : Handle to GDIplus -image or -bitmap , -1 To leave the old
; The foreground image
; $BackBmp : [Optional] Handle to GDIplus -image or -bitmap , -1 To leave the old
; The background image
; Requirement(s): Winapi.au3, GDIplus
; Return Value(s): Success: 1, Error: 0
; Author(s): Prog@ndy
;
;===============================================================================
;
Func _ProgressSetHBitmaps(ByRef $ID, $ForeBmp = -1, $backBMP = -1)
If Not IsArray($_Progress_Bars) Or UBound($_Progress_Bars, 2) <> 15 Or $ID > (UBound($_Progress_Bars)-1) Then Return SetError(1, 0, 0)
If GUICtrlGetHandle($_Progress_Bars[$ID][0]) = 0 Then Return SetError(2, 0, 0)
If $ForeBmp > -1 And _GDIPlus_ImageGetHeight($ForeBmp) Then
;~ _WinAPI_DeleteObject($_Progress_Bars[$ID][6])
_GDIPlus_ImageDispose($_Progress_Bars[$ID][6])
$_Progress_Bars[$ID][6] = $ForeBmp
$_Progress_Bars[$ID][11] = _GDIPlus_ImageGetWidth($_Progress_Bars[$ID][6])
$_Progress_Bars[$ID][12] = _GDIPlus_ImageGetHeight($_Progress_Bars[$ID][6])
EndIf
If $backBMP > -1 And _GDIPlus_ImageGetHeight($backBMP) Then
;~ _WinAPI_DeleteObject($_Progress_Bars[$ID][7])
_GDIPlus_ImageDispose($_Progress_Bars[$ID][7])
$_Progress_Bars[$ID][7] = $backBMP
$_Progress_Bars[$ID][13] = _GDIPlus_ImageGetWidth($_Progress_Bars[$ID][7])
$_Progress_Bars[$ID][14] = _GDIPlus_ImageGetHeight($_Progress_Bars[$ID][7])
EndIf
;~ _ProgressSet($ID, $_Progress_Bars[$ID][8])
Return SetError(@error, 0, @error = 0)
EndFunc ;==>_ProgressSetHBitmaps;===============================================================================
[/autoit] [autoit][/autoit] [autoit]
;
; Function Name: _ProgressSetText(
; Description:: Sets the text to be shown
; Parameter(s): $ID : ID of Progressbar
; $text: -> TRUE : Show percent
; -> A string to be shown, %P% is replaced with Percentage
; Requirement(s): This UDf
; Return Value(s): Success: 1, Error: 0
; Author(s): Prog@ndy
;
;===============================================================================
;
Func _ProgressSetText(ByRef $ID, $text = True)
If Not IsArray($_Progress_Bars) Or UBound($_Progress_Bars, 2) <> 15 Or $ID > (UBound($_Progress_Bars)-1) Then Return SetError(1, 0, 0)
$_Progress_Bars[$ID][9] = $text
;~ _ProgressSet($ID, $_Progress_Bars[$ID][8])
Return SetError(@error, 0, @error = 0)
EndFunc ;==>_ProgressSetText;===============================================================================
[/autoit] [autoit][/autoit] [autoit]
;
; Function Name: _ProgressSetFont()
; Description:: Sets the Font and Color of the Text of the Progressbar
; Parameter(s): $ID : ID of Progressbar
; $Font : Name of the font (empty String "" to do not change)
; $size : [Optional] size of the font ( 0 or negative to leave the old)
; $Styles : [Optional] The style of the typeface. Can be a combination of the following:
; 0 - Normal weight or thickness of the typeface
; 1 - Bold typeface
; 2 - Italic typeface
; 4 - Underline
; 8 - Strikethrough
; ( -1, negative to leave the old)
; $ARGBcolor : [Optional] the color of the font, can be RGB or ARGB (depending on $isARGB)
; (empty String "" to do not change)
; $InverseColor: [Optional] should the color be inversed when the bar is under the text?
; $isARGB : [Optional] Sets, whether $ARGBcolor is RGB (False, default) or ARGB (True)
; Requirement(s): This UDF
; Return Value(s): Success: 1, Error: 0
; Author(s): Prog@ndy
;
;===============================================================================
;
Func _ProgressSetFont(ByRef $ID, $Font, $size = Default, $Styles = Default, $ARGBcolor = Default, $InverseColor=-1, $isARGB = False)
If Not IsArray($_Progress_Bars) Or UBound($_Progress_Bars, 2) <> 15 Or $ID > (UBound($_Progress_Bars)-1) Then Return SetError(1, 0, 0)
Local $array = StringSplit($_Progress_Bars[$ID][10], "|")
If $Font <> "" And IsString($Font) And $Font <> Default Then $array[1] = $Font
$size = Number($size)
If $size > 0 And $size <> Default Then $array[2] = $size
$Styles = Number($Styles)
If $Styles > -1 And $Styles <> Default Then $array[3] = BitAND($Styles, 15)
If Not $isARGB Then $ARGBcolor = "0xFF" & Hex(Int($ARGBcolor), 6)
If Not ($ARGBcolor == "") And Not ($ARGBcolor == Default) Then $array[4] = "0x" & Hex(Int($ARGBcolor),
If $InverseColor > 0 Then $array[5] = "1"
If $InverseColor = 0 Then $array[5] = "0"
$_Progress_Bars[$ID][10] = $array[1] & "|" & $array[2] & "|" & $array[3] & "|" & $array[4] & "|" & $array[5]
;~ _ProgressSet($ID, $_Progress_Bars[$ID][8])
Return SetError(@error, 0, @error = 0)
EndFunc ;==>_ProgressSetFont;===============================================================================
[/autoit] [autoit][/autoit] [autoit]
;
; Function Name: _ProgressSet()
; Description:: Sets the percentage of the Progressbar
; Parameter(s): $ID : ID of Progressbar
; $prc The percentage to set
; Requirement(s): This UDF
; Return Value(s): If Progressbar odes not Exist: @error is set to 1
; Author(s): Prog@ndy
;
;===============================================================================
;
Func _ProgressSet(ByRef $ID, $prc)
If Not IsArray($_Progress_Bars) Or UBound($_Progress_Bars, 2) <> 15 Or $ID > (UBound($_Progress_Bars)-1) Then Return SetError(1, 0, 0)
If $prc > 100 Then $prc = 100
If $prc < 0 Then $prc = 0
$_Progress_Bars[$ID][8] = $prc
Return 1
EndFunc ;==>_ProgressSet
Func _ProgressGet(ByRef $ID)
If Not IsArray($_Progress_Bars) Or UBound($_Progress_Bars, 2) <> 15 Or $ID > (UBound($_Progress_Bars)-1) Then Return SetError(1, 0, 0)
Return _WinAPI_LoWord($_Progress_Bars[$ID][8])
EndFunc
;===============================================================================
;
; Function Name: _ProgressMarquee()
; Description:: Sets the
; Parameter(s): $ID : ID of Progressbar
; $speed : The speed of the Marquee: 1 to 10, smaller as 1 turns it off
; $makeSmallFront : Crop the Front image to 1/10 of its former width
; If it was created by _ProgressSetColors, this is 1/10 of Progress Width
; If this is set to -1 and $speed is set to < 0 then the Front image size is
; set to the width of the Progressbar
; Requirement(s): WinAPI
; Return Value(s): If Progressbar does not Exist: @error is set to 1
; Author(s): Prog@ndy
;
;===============================================================================
;
Func _ProgressMarquee(ByRef $ID, $speed = 2, $makeSmallFront = 1)
If Not IsArray($_Progress_Bars) Or UBound($_Progress_Bars, 2) <> 15 Or $ID > (UBound($_Progress_Bars)-1) Then Return SetError(1, 0, 0)
If $speed < 0 Then
$_Progress_Bars[$ID][8] = _WinAPI_LoWord($_Progress_Bars[$ID][8])
If $makeSmallFront = -1 Then $_Progress_Bars[$ID][11] = $_Progress_Bars[$ID][1]
Return 1
EndIf
If $speed > 10 Then $speed = 10
If $speed < 1 Then $speed = 1
$_Progress_Bars[$ID][8] = _WinAPI_MakeLong(_WinAPI_LoWord($_Progress_Bars[$ID][8]), Number($speed))
If $makeSmallFront Then $_Progress_Bars[$ID][11] = Int($_Progress_Bars[$ID][11] / 10)
Return 1
EndFunc ;==>_ProgressMarquee; Author(s): Prog@ndy
[/autoit] [autoit][/autoit] [autoit]
Func _ProgressRefresh(ByRef $ID, $prc = Default)
If Not IsArray($_Progress_Bars) Or UBound($_Progress_Bars, 2) <> 15 Or $ID > (UBound($_Progress_Bars)-1) Then Return SetError(1, 0, 0)
If $_Progress_Bars[$ID][1] < 1 Then Return SetError(2, 0, 0)
Local $bar_height = $_Progress_Bars[$ID][2]
Local $bar_width = $_Progress_Bars[$ID][1]
If $prc = Default Then $prc = $_Progress_Bars[$ID][8]
If $_Progress_Bars[$ID][8] > 65535 Then Return _ProgressRefreshMarquee($ID)
If $prc > 100 Then $prc = 100
If $prc < 0 Then $prc = 0
$_Progress_Bars[$ID][8] = $prc
;~ $iPercent = $prc
;~ ConsoleWrite($iPercent & @CRLF)
;~ GUICtrlSetData($Status_Label, $prc & "%")
Local $position_in_bar = Int(($bar_width) / 100 * $prc) ;; or we move out the bar
If $prc = 0 Then $position_in_bar = 0
_GDIPlus_GraphicsClear($_Progress_Bars[$ID][5], 0xFFFFFFFF);~ ; draw grey bar to right side
[/autoit] [autoit][/autoit] [autoit]
;~ _GDIPlus_GraphicsDrawImageRectRect($_Progress_Bars[$ID][5], $_Progress_Bars[$ID][7], Int(($_Progress_Bars[$ID][13] / 100) * $prc), 0, Int(($_Progress_Bars[$ID][13] / 100) * (100 - $prc)), $_Progress_Bars[$ID][14], _
;~ $position_in_bar , _
;~ 0, _
;~ $bar_width - ($position_in_bar ), _
;~ $bar_height);
;~
; draw grey bar to right side
_GDIPlus_GraphicsDrawImageRectRect($_Progress_Bars[$ID][5], $_Progress_Bars[$ID][7], 0 , 0, $_Progress_Bars[$ID][13] , $_Progress_Bars[$ID][14], _
0 , _
0, _
$bar_width , _
$bar_height);;; draw blue bar from left
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
If $position_in_bar > 0 Then _GDIPlus_GraphicsDrawImageRectRect($_Progress_Bars[$ID][5], $_Progress_Bars[$ID][6], _
0, 0, Int(($_Progress_Bars[$ID][11] / 100) * $prc), $_Progress_Bars[$ID][12], _
0, _
0, _
$position_in_bar, _
$bar_height)If Not IsString($_Progress_Bars[$ID][9]) And $_Progress_Bars[$ID][9] = True Then
[/autoit] [autoit][/autoit] [autoit]
_DrawStringCenter($_Progress_Bars[$ID][5], $prc & "%", $bar_width, $bar_height, $_Progress_Bars[$ID][10])
If $position_in_bar Then _DrawStringCenter($_Progress_Bars[$ID][5], $prc & "%", $bar_width, $bar_height, $_Progress_Bars[$ID][10], $position_in_bar)
ElseIf StringLen($_Progress_Bars[$ID][9]) > 0 Then
_DrawStringCenter($_Progress_Bars[$ID][5], StringReplace($_Progress_Bars[$ID][9], "%P%", $prc), $bar_width, $bar_height, $_Progress_Bars[$ID][10])
If $position_in_bar Then _DrawStringCenter($_Progress_Bars[$ID][5], StringReplace($_Progress_Bars[$ID][9], "%P%", $prc), $bar_width, $bar_height, $_Progress_Bars[$ID][10], $position_in_bar)
EndIf
;~ _GDIPlus_GraphicsDrawString($_Progress_Bars[$ID][5],$prc & " %",Ceiling(($bar_width/2)-15),Ceiling(($bar_height/2)-5))
_GDIPlus_GraphicsDrawImage($_Progress_Bars[$ID][3], $_Progress_Bars[$ID][4], 0, 0)EndFunc ;==>_ProgressRefresh
[/autoit] [autoit][/autoit] [autoit]; Author(s): Prog@ndy
[/autoit] [autoit][/autoit] [autoit]
Func _ProgressRefreshMarquee(ByRef $ID, $prc = Default)
If Not IsArray($_Progress_Bars) Or UBound($_Progress_Bars, 2) <> 15 Or $ID > (UBound($_Progress_Bars)-1) Then Return SetError(1, 0, 0)
If $_Progress_Bars[$ID][1] < 1 Then Return SetError(2, 0, 0)
Local $bar_height = $_Progress_Bars[$ID][2]
Local $bar_width = $_Progress_Bars[$ID][1]
If $prc = Default Then $prc = _WinAPI_LoWord($_Progress_Bars[$ID][8])
If $prc > 100 Then $prc = 0
If $prc < 0 Then $prc = 0
$_Progress_Bars[$ID][8] = _WinAPI_MakeLong($prc + _WinAPI_HiWord($_Progress_Bars[$ID][8]), _WinAPI_HiWord($_Progress_Bars[$ID][8]))
;~ $iPercent = $prc
;~ ConsoleWrite($iPercent & @CRLF)
;~ GUICtrlSetData($Status_Label, $prc & "%")
Local $position_in_bar = Int(($bar_width + ($bar_height / $_Progress_Bars[$ID][12] * $_Progress_Bars[$ID][11])) / 100 * $prc) ;; or we move out the bar
If $prc = 0 Then $position_in_bar = 0
_GDIPlus_GraphicsClear($_Progress_Bars[$ID][5], 0xFFFFFFFF)
; draw grey bar to right side
_GDIPlus_GraphicsDrawImageRectRect($_Progress_Bars[$ID][5], $_Progress_Bars[$ID][7], 0, 0, $_Progress_Bars[$ID][13], $_Progress_Bars[$ID][14], _
0, _
0, _
$bar_width, _
$bar_height);
;; draw blue bar from left
If $position_in_bar > 0 Then _GDIPlus_GraphicsDrawImageRectRect($_Progress_Bars[$ID][5], $_Progress_Bars[$ID][6], _
0, 0, $_Progress_Bars[$ID][11], $_Progress_Bars[$ID][12], _
$position_in_bar - ($bar_height / $_Progress_Bars[$ID][12] * $_Progress_Bars[$ID][11]), _
0, _
$bar_height / $_Progress_Bars[$ID][12] * $_Progress_Bars[$ID][11], _
$bar_height)
If (Not IsString($_Progress_Bars[$ID][9])) And $_Progress_Bars[$ID][9] = True Then
_DrawStringCenter($_Progress_Bars[$ID][5], StringReplace(" ", " ", ".", Mod(@SEC, 5) + 1), $bar_width, $bar_height, $_Progress_Bars[$ID][10])
ElseIf StringLen($_Progress_Bars[$ID][9]) > 0 Then
_DrawStringCenter($_Progress_Bars[$ID][5], StringReplace($_Progress_Bars[$ID][9], "%P%", StringReplace(" ", " ", ".", Mod(@SEC, 5) + 1)), $bar_width, $bar_height, $_Progress_Bars[$ID][10])
EndIf
;~ _GDIPlus_GraphicsDrawString($_Progress_Bars[$ID][5],$prc & " %",Ceiling(($bar_width/2)-15),Ceiling(($bar_height/2)-5))
_GDIPlus_GraphicsDrawImage($_Progress_Bars[$ID][3], $_Progress_Bars[$ID][4], 0, 0)EndFunc ;==>_ProgressRefreshMarquee
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]; Author(s): Prog@ndy
[/autoit] [autoit][/autoit] [autoit]
Func _DrawStringCenter(ByRef $hGraphic, $sString, $bar_width, $bar_height, $FontFormat = "Arial|12|1|0xFF000000|0", $InverseStart = -1)
$FontFormat = StringSplit($FontFormat, "|")
If $InverseStart>-1 And $FontFormat[5]=1 Then
DLLCall($ghGDIPdll, "int", "GdipSetClipRectI", "ptr", $hGraphic, "int", 0, "int", 0, "int", $InverseStart, "int", $bar_height, "int", 0)
$FontFormat[4]= BitOr(0xFF000000,_InverseColor($FontFormat[4]))
EndIf
Local $hBrush = _GDIPlus_BrushCreateSolid($FontFormat[4])
Local $hFormat = _GDIPlus_StringFormatCreate(0x0400)
Local $hFamily = _GDIPlus_FontFamilyCreate($FontFormat[1])
Local $hFont = _GDIPlus_FontCreate($hFamily, $FontFormat[2], $FontFormat[3])
Local $tLayout = _GDIPlus_RectFCreate(0, 0, 0, 0)
Local $aInfo = _GDIPlus_GraphicsMeasureString($hGraphic, $sString, $hFont, $tLayout, $hFormat)
DllStructSetData($aInfo[0], "X", Int(($bar_width - DllStructGetData($aInfo[0], "Width")) / 2))
DllStructSetData($aInfo[0], "Y", Int(($bar_height - DllStructGetData($aInfo[0], "Height")) / 2))
_GDIPlus_GraphicsDrawStringEx($hGraphic, $sString, $hFont, $aInfo[0], $hFormat, $hBrush)
If $InverseStart>-1 And $FontFormat[5]=1 Then DLLCall($ghGDIPdll, "int", "GdipSetClipRectI", "ptr", $hGraphic, "int", 0, "int", 0, "int", $bar_width, "int", $bar_height, "int", 0)
_GDIPlus_FontDispose($hFont)
_GDIPlus_FontFamilyDispose($hFamily)
_GDIPlus_StringFormatDispose($hFormat)
_GDIPlus_BrushDispose($hBrush)
EndFunc ;==>_DrawStringCenter; Modified _Max() Function, directly included
[/autoit] [autoit][/autoit] [autoit]
; Author(s): Jeremy Landes <jlandes at landeserve dot com>
Func _MyMax($nNum1, $nNum2)If Number($nNum1) > Number($nNum2) Then
[/autoit] [autoit][/autoit] [autoit]
Return Number($nNum1)
Else
Return Number($nNum2)
EndIf
EndFunc ;==>_MyMax#EndRegion Colored Progressbar
[/autoit] [autoit][/autoit] [autoit]
;-------------------------------------------------------------------;-------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]
#Region Gradient
;===============================================================================
;
; Function Name: _Gradient($RGB_Color1 ,$RGB_Color2, $Count)
; Description:: Returns an Array of Gradient Colors
; Parameter(s): $RGB_Color1 : The Start-Color in RGB Hexadecimal
; $RGB_Color2 : The End-Color in RGB Hexadecimal
; $Count : The number of Colors in the Gradient
; Requirement(s):
; Return Value(s): An Array with the Colors
; Author(s): Prog@ndy
;
;===============================================================================
;Func _Gradient($RGB_Color1, $RGB_Color2, $Count, $ARGB = False)
[/autoit] [autoit][/autoit] [autoit]
Local $Color1_R, $Color1_G, $Color1_B, $Color2_R, $Color2_G, $Color2_B, $NeuCol_R, $NeuCol_G, $NeuCol_B
$ARGB = StringLeft("FF", 2 * $ARGB)
$Color1_R = BitAND(BitShift($RGB_Color1, 16), 0xff)
$Color1_G = BitAND(BitShift($RGB_Color1, 8), 0xff)
$Color1_B = BitAND($RGB_Color1, 0xff)$Color2_R = BitAND(BitShift($RGB_Color2, 16), 0xff)
[/autoit] [autoit][/autoit] [autoit]
$Color2_G = BitAND(BitShift($RGB_Color2, 8), 0xff)
$Color2_B = BitAND($RGB_Color2, 0xff)$Count -= 1 ; 0-basiert !
[/autoit] [autoit][/autoit] [autoit]
Dim $arColors[$Count + 1], $pos1For $i = 0 To $Count
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$pos1 = $Count - $i
$NeuCol_R = ($Color1_R * $pos1 + $Color2_R * $i) / ($Count)
$NeuCol_G = ($Color1_G * $pos1 + $Color2_G * $i) / ($Count)
$NeuCol_B = ($Color1_B * $pos1 + $Color2_B * $i) / ($Count)
$arColors[$i] = Execute('0x' & $ARGB & Hex(Int($NeuCol_R), 2) & Hex(Int($NeuCol_G), 2) & Hex(Int($NeuCol_B), 2))
Next
Return $arColors
EndFunc ;==>_Gradient;Hilfsfunktion für doppelten Verlauf
[/autoit] [autoit][/autoit] [autoit]
; Author(s): Prog@ndy
Func _ZwischenGrad($RGB_c, $ARGB = False)
Local $c_R = BitAND(BitShift($RGB_c, 16), 0xff)
Local $c_G = BitAND(BitShift($RGB_c, 8), 0xff)
Local $c_B = BitAND($RGB_c, 0xff)
$c_R = _MyMax(0, $c_R - 99)
$c_G = _MyMax(0, $c_G - 99)
$c_B = _MyMax(0, $c_B - 99)
If $ARGB Then Return Dec("FF" & Hex(Int($c_R), 2) & Hex(Int($c_G), 2) & Hex(Int($c_B), 2))
Return Dec(Hex(Int($c_R), 2) & Hex(Int($c_G), 2) & Hex(Int($c_B), 2))
EndFunc ;==>_ZwischenGrad; Author(s): Prog@ndy
[/autoit] [autoit][/autoit] [autoit]
Func _CreateGradientImg(ByRef $bmpfront, $w, $h, $startRGB, $endRGB)
Local $graph_front = _GDIPlus_ImageGetGraphicsContext($bmpfront)
Local $hPen = _GDIPlus_PenCreate(0, 1)
Local $Wechsel = Round((9 / 20) * $h)
Local $temp = _Gradient($startRGB, $endRGB, 3)
$temp = _ZwischenGrad($temp[1], 0)
Local $Gradient = _Gradient($startRGB, $temp, $Wechsel, 1)
Local $Gradient2 = _Gradient($temp, $endRGB, $h - $Wechsel, 1)
Local $PenColor
For $i = 0 To $h - 1
If $i < $Wechsel Then
$PenColor = $Gradient[$i]
Else
$PenColor = $Gradient2[$i - $Wechsel]
EndIf
_GDIPlus_PenSetColor($hPen, $PenColor)
_GDIPlus_GraphicsDrawLine($graph_front, 0, $i, $w, $i, $hPen)
Next
_GDIPlus_PenSetColor($hPen, 0xFF666666)
;~ _GDIPlus_GraphicsDrawRect($graph_front, 0, 0, $w, $h, $hPen)
_GDIPlus_PenDispose($hPen)
_GDIPlus_GraphicsDispose($graph_front)
EndFunc ;==>_CreateGradientImg#EndRegion Gradient
[/autoit] [autoit][/autoit] [autoit]
;-------------------------------------------------------------------;-------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]
#Region Internal
; Internal Function, do not use !
Func _Paint_Bars_Procedure($hWnd, $nMsg, $wParam, $lParam)
For $i = 1 To UBound($_Progress_Bars) - 1
If Not ($_Progress_Bars[$i][0] = -1) Then _ProgressRefresh($i);
Next
EndFunc ;==>_Paint_Bars_Procedure; Internal Function, do not use !
[/autoit] [autoit][/autoit] [autoit]
; Author(s): Prog@ndy
Func _Progress_CallBack_Init($ForceReInit = False)
Local $sFuncName = "_Paint_Bars_Procedure", $iTime = 50, $sParam = "hwnd;int;int;dword"
$_Progress_ahCallBack[2] += 1
If $_Progress_ahCallBack[2] > 1 And Not $ForceReInit Then Return True
If $ForceReInit Then
Local $temp = $_Progress_ahCallBack[2]
_Progress_CallBack_Free(1)
$_Progress_ahCallBack[2] = $temp
EndIf
Local $hCallBack = DllCallbackRegister("_Paint_Bars_Procedure", "int", $sParam)Local $aTimer = DllCall("user32.dll", "uint", "SetTimer", _
[/autoit] [autoit][/autoit] [autoit]
"hwnd", 0, "uint", 0, "int", $iTime, "ptr", DllCallbackGetPtr($hCallBack))$_Progress_ahCallBack[0] = $hCallBack
[/autoit] [autoit][/autoit] [autoit]
$_Progress_ahCallBack[1] = $aTimer[0]Return True
[/autoit] [autoit][/autoit] [autoit]
EndFunc ;==>_Progress_CallBack_Init; Internal Function, do not use !
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
; Author(s): Prog@ndy
Func _Progress_CallBack_Free($Force = False)
$_Progress_ahCallBack[2] -= 1
If $_Progress_ahCallBack[2] < 0 Then
$_Progress_ahCallBack[2] = 0
Return
EndIf
If (Not $Force) And ($_Progress_ahCallBack[2] > 0) Then Return
ConsoleWrite("!DEBUG Variables ------------------" & @CRLF)
ConsoleWrite("! $Force" & $Force & @CRLF)
ConsoleWrite("! $_Progress_ahCallBack[2]" & $_Progress_ahCallBack[2] & @CRLF)
ConsoleWrite("! $_Progress_ahCallBack[0]" & $_Progress_ahCallBack[1] & @CRLF)
ConsoleWrite("! $_Progress_ahCallBack[1]" & $_Progress_ahCallBack[1] & @CRLF)
ConsoleWrite("!----------------------------------" & @CRLF)
If $_Progress_ahCallBack[1] <> -1 Then DllCall("user32.dll", "int", "KillTimer", "hwnd", 0*ConsoleWrite("KILL" & @CRLF) , "uint", $_Progress_ahCallBack[1])
ConsoleWrite("!DEBUG after Kill TImer" & @CRLF)
ConsoleWrite("!DEBUG Variables ------------------" & @CRLF)
ConsoleWrite("! $Force" & $Force & @CRLF)
ConsoleWrite("! $_Progress_ahCallBack[2]" & $_Progress_ahCallBack[2] & @CRLF)
ConsoleWrite("! $_Progress_ahCallBack[0]" & $_Progress_ahCallBack[1] & @CRLF)
ConsoleWrite("! $_Progress_ahCallBack[1]" & $_Progress_ahCallBack[1] & @CRLF)
ConsoleWrite("!----------------------------------" & @CRLF)
If $_Progress_ahCallBack[0] <> -1 Then DllCallbackFree($_Progress_ahCallBack[0])
ConsoleWrite("!DEBUG after Free callback" & @CRLF)
ConsoleWrite("!DEBUG Variables ------------------" & @CRLF)
ConsoleWrite("! $Force" & $Force & @CRLF)
ConsoleWrite("! $_Progress_ahCallBack[2]" & $_Progress_ahCallBack[2] & @CRLF)
ConsoleWrite("! $_Progress_ahCallBack[0]" & $_Progress_ahCallBack[1] & @CRLF)
ConsoleWrite("! $_Progress_ahCallBack[1]" & $_Progress_ahCallBack[1] & @CRLF)
ConsoleWrite("!----------------------------------" & @CRLF)
$_Progress_ahCallBack[0] = -1
$_Progress_ahCallBack[1] = -1
$_Progress_ahCallBack[2] = 0
ConsoleWrite("!DEBUG after Var REset" & @CRLF)
ConsoleWrite("!DEBUG Variables ------------------" & @CRLF)
ConsoleWrite("! $Force" & $Force & @CRLF)
ConsoleWrite("! $_Progress_ahCallBack[2]" & $_Progress_ahCallBack[2] & @CRLF)
ConsoleWrite("! $_Progress_ahCallBack[0]" & $_Progress_ahCallBack[1] & @CRLF)
ConsoleWrite("! $_Progress_ahCallBack[1]" & $_Progress_ahCallBack[1] & @CRLF)
ConsoleWrite("!----------------------------------" & @CRLF)
EndFunc ;==>_Progress_CallBack_Free;~ Func _DebugPrint($s_text)
[/autoit] [autoit][/autoit] [autoit]
;~ $s_text = StringReplace($s_text, @LF, @LF & "-")
;~ ConsoleWrite($s_text & @LF); & _
;~ EndFunc ;==>_DebugPrintFunc __CheckForGDIPlus($Fatal = True)
[/autoit] [autoit][/autoit] [autoit]
Local $x = DllOpen("GDIPlus.dll")
Local $ret = DllCall("Kernel32.dll", "dword", "GetModuleHandle", "str", "GDIPlus")
DllClose($x)
If $ret[0] = 0 And $Fatal Then _WinAPI_FatalAppExit("GDIplus not found. Please install GDIplus to use this application")
Return ($ret[0] = 0)
EndFunc ;==>__CheckForGDIPlus#EndRegion Internal
[/autoit] [autoit][/autoit] [autoit]
;-------------------------------------------------------------------Func _InverseColor($Col)
[/autoit]
$Col = Number($Col)
Local $a = BitAND($Col,0xFF)
Local $b = BitAND(BitShift($Col,8),0xFF)
Local $c = BitAND(BitShift($Col,16),0xFF)
Return BitOR(BitShift(255-$c,-16), BitShift(255-$b,-8), 255-$a)
EndFunc -
Vertausche mal die zwei Zeilen. Vllt hilft das.
-
Hab's jetzt extra runtergeladen. Meinst du den Rahmen um die Progressbar?
[autoit]
Dann entferne folgende Zeile aus der Funktion _CreateGradientImg()_GDIPlus_GraphicsDrawRect($graph_front, 0, 0, $w, $h, $hPen)
[/autoit] -
Hab mir die UDF nicht angeschaut, aber du musst sicher alle Hex() in Hex(Int()) umschreiben.