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

Beiträge von BugFix

  • Frage zu einem Script

    • BugFix
    • 21. Mai 2015 um 13:15
    Zitat von BigRox

    Es soll aber nur dann etwas geschehen, wenn ich den Button anklicke.

    Ich verstehe nicht wo das Problem sein soll. Wenn du das, was passieren soll, dem Button zuordnest, brauchst du doch kein Label-Gedöns und irgendwelche Abfragen.

  • Skript funktioniert nur Teilweise, wenn nicht angemeldet

    • BugFix
    • 21. Mai 2015 um 12:56

    Auf Anhieb kann ich nicht sagen wo der Schuh drückt.
    Aber eine Frage:
    Du setzt vor dem PDF-Druck den PDF-Printer als Standarddrucker. Warum sendest du den Druckauftrag dann trotzdem nochmals gezielt an den Drucker ab? Der ist doch dann bereits Default.

    Ich verwende für PDF immer den PDFCreator. Hat eine API-Referenz, ist auch schon im Forum zu einer UDF umgesetzt und die Settings sind so vielfältig, dass kein Wunsch offen bleibt. Und Probleme mit der Formatdarstellung hatte ich bisher nie.

  • Button: 1. -ändern der Farbe- und 2. -Name des Button per Tastatur (Hotkey) erreichen-.

    • BugFix
    • 20. Mai 2015 um 20:11
    Zitat von bazii

    schlussendlich mit der Entertaste auszuführen. Ich hatte zu Anfangs nicht daran gedacht. Ist das denn noch umsetzbar?

    Kein Problem, einfach einen ENTER-Dummy hinzufügen zum Auslösen des Buttons der aktuell den Fokus hat:

    Spoiler anzeigen
    AutoIt
    $hGui = GUICreate('Test')
    $Button_1 = GUICtrlCreateButton('1', 10, 10, 30, 20)
    $Button_2 = GUICtrlCreateButton('2', 50, 10, 30, 20)
    $Button_3 = GUICtrlCreateButton('3', 90, 10, 30, 20)
    $Button_4 = GUICtrlCreateButton('4', 130, 10, 30, 20)
    $Button_5 = GUICtrlCreateButton('5', 170, 10, 30, 20)
    $Button_6 = GUICtrlCreateButton('6', 210, 10, 30, 20)
    $Button_7 = GUICtrlCreateButton('7', 10, 50, 30, 20)
    $Button_8 = GUICtrlCreateButton('8', 50, 50, 30, 20)
    $Button_9 = GUICtrlCreateButton('9', 90, 50, 30, 20)
    $Dummy_Up = GUICtrlCreateDummy()
    $Dummy_Down = GUICtrlCreateDummy()
    $Dummy_Left = GUICtrlCreateDummy()
    $Dummy_Right = GUICtrlCreateDummy()
    $DummyEnter = GUICtrlCreateDummy()
    
    
    Global $iFocusCurrent = $Button_1
    ControlFocus($hGui, '', $Button_1)
    Global $aAccelerators[5][2] = [['{UP}',$Dummy_Up],['{DOWN}',$Dummy_Down],['{LEFT}',$Dummy_Left],['{RIGHT}',$Dummy_Right],['{ENTER}',$DummyEnter]]
    GUISetAccelerators($aAccelerators, $hGui)
    
    
    GUISetState()
    
    
    While True
    	$nMsg = GUIGetMsg()
    	Switch $nMsg
    		Case -3
    			Exit
    		Case $Dummy_Up
    			_SetFocus(0,-1)
    		Case $Dummy_Down
    			_SetFocus(0,1)
    		Case $Dummy_Left
    			_SetFocus(-1,0)
    		Case $Dummy_Right
    			_SetFocus(1,0)
    		Case $DummyEnter
    			ControlClick($hGui, '', ControlGetFocus($hGui))
    		Case $Button_1,$Button_2,$Button_3,$Button_4,$Button_5,$Button_6,$Button_7,$Button_8,$Button_9
    			ConsoleWrite('Clicked: ' & ControlGetText($hGui, '', $nMsg) & @CRLF)
    	EndSwitch
    WEnd
    
    
    Func _SetFocus($Spalte, $Zeile)
    	Local Static $aButton[2][6] = [[$Button_1,$Button_2,$Button_3,$Button_4,$Button_5,$Button_6],[$Button_7,$Button_8,$Button_9]]
    	Local Static $iCurrentLine = 0, $iCurrentRow = 0
    	$iCurrentLine += $Zeile
    	$iCurrentLine = $iCurrentLine > 2 ? 2 : ($iCurrentLine < 0 ? 0 : $iCurrentLine)
    	$iCurrentRow += $Spalte
    	If $iCurrentLine = 0 Then
    		$iCurrentRow = $iCurrentRow > 5 ? 5 : ($iCurrentRow < 0 ? 0 : $iCurrentRow)
    	ElseIf $iCurrentLine = 1 Then
    		$iCurrentRow = $iCurrentRow > 2 ? 2 : ($iCurrentRow < 0 ? 0 : $iCurrentRow)
    	EndIf
    	ControlFocus($hGui, '', $aButton[$iCurrentLine][$iCurrentRow])
    EndFunc
    Alles anzeigen
  • Button: 1. -ändern der Farbe- und 2. -Name des Button per Tastatur (Hotkey) erreichen-.

    • BugFix
    • 20. Mai 2015 um 19:43
    Zitat von bazii

    Ein Problem ist noch, dass meine Buttons nun per Mausklick, keine Funktionen mehr ausführen.

    Anhand meines Bsp-Codes kann ich das nicht nachvollziehen. Deshalb weiß ich nicht, wo da bei dir der Fehler entsteht.

  • Button: 1. -ändern der Farbe- und 2. -Name des Button per Tastatur (Hotkey) erreichen-.

    • BugFix
    • 20. Mai 2015 um 18:54
    Zitat von bazii

    Wenn ich jetzt aber die Pfeiltasten drücke, verschwindet meine Gui wie durch ein Lufthauch weggeblasen.

    Ich hatte den Code nochmal editiert, mit einer Fehlerroutine. Wenn du versuchst einen nicht existierenden Arraybereich anzusprechen stürzt natürlich das Programm ab.
    Für deinen Fall muss dass denn so aussehen:

    Spoiler anzeigen
    AutoIt
    $hGui = GUICreate('Test')
    $Button_1 = GUICtrlCreateButton('1', 10, 10, 30, 20)
    $Button_2 = GUICtrlCreateButton('2', 50, 10, 30, 20)
    $Button_3 = GUICtrlCreateButton('3', 90, 10, 30, 20)
    $Button_4 = GUICtrlCreateButton('4', 130, 10, 30, 20)
    $Button_5 = GUICtrlCreateButton('5', 170, 10, 30, 20)
    $Button_6 = GUICtrlCreateButton('6', 210, 10, 30, 20)
    $Button_7 = GUICtrlCreateButton('7', 10, 50, 30, 20)
    $Button_8 = GUICtrlCreateButton('8', 50, 50, 30, 20)
    $Button_9 = GUICtrlCreateButton('9', 90, 50, 30, 20)
    $Dummy_Up = GUICtrlCreateDummy()
    $Dummy_Down = GUICtrlCreateDummy()
    $Dummy_Left = GUICtrlCreateDummy()
    $Dummy_Right = GUICtrlCreateDummy()
    
    
    Global $iFocusCurrent = $Button_1
    ControlFocus($hGui, '', $Button_1)
    Global $aAccelerators[4][2] = [['{UP}',$Dummy_Up],['{DOWN}',$Dummy_Down],['{LEFT}',$Dummy_Left],['{RIGHT}',$Dummy_Right]]
    GUISetAccelerators($aAccelerators, $hGui)
    
    
    GUISetState()
    
    
    While True
    	$nMsg = GUIGetMsg()
    	Switch $nMsg
    		Case -3
    			Exit
    		Case $Dummy_Up
    			_SetFocus(0,-1)
    		Case $Dummy_Down
    			_SetFocus(0,1)
    		Case $Dummy_Left
    			_SetFocus(-1,0)
    		Case $Dummy_Right
    			_SetFocus(1,0)
    		Case $Button_1,$Button_2,$Button_3,$Button_4,$Button_5,$Button_6,$Button_7,$Button_8,$Button_9
    			ConsoleWrite('Clicked: ' & ControlGetText($hGui, '', $nMsg) & @CRLF)
    	EndSwitch
    WEnd
    
    
    Func _SetFocus($Spalte, $Zeile)
    	Local Static $aButton[2][6] = [[$Button_1,$Button_2,$Button_3,$Button_4,$Button_5,$Button_6],[$Button_7,$Button_8,$Button_9]]
    	Local Static $iCurrentLine = 0, $iCurrentRow = 0
    	$iCurrentLine += $Zeile
    	$iCurrentLine = $iCurrentLine > 2 ? 2 : ($iCurrentLine < 0 ? 0 : $iCurrentLine)
    	$iCurrentRow += $Spalte
    	If $iCurrentLine = 0 Then
    		$iCurrentRow = $iCurrentRow > 5 ? 5 : ($iCurrentRow < 0 ? 0 : $iCurrentRow)
    	ElseIf $iCurrentLine = 1 Then
    		$iCurrentRow = $iCurrentRow > 2 ? 2 : ($iCurrentRow < 0 ? 0 : $iCurrentRow)
    	EndIf
    	ControlFocus($hGui, '', $aButton[$iCurrentLine][$iCurrentRow])
    EndFunc
    Alles anzeigen
  • [Hilfe]ListView bzw Textdatei durchsuchen

    • BugFix
    • 20. Mai 2015 um 18:14

    Als Anregung kann dir das dienen: IntelliSenseBox

  • Button: 1. -ändern der Farbe- und 2. -Name des Button per Tastatur (Hotkey) erreichen-.

    • BugFix
    • 20. Mai 2015 um 17:31

    Kannst du so lösen:

    Spoiler anzeigen
    AutoIt
    $hGui = GUICreate('Test')
    $Button_A = GUICtrlCreateButton('A', 10, 10, 30, 20)
    $Button_B = GUICtrlCreateButton('B', 50, 10, 30, 20)
    $Button_C = GUICtrlCreateButton('C', 90, 10, 30, 20)
    $Button_D = GUICtrlCreateButton('D', 10, 50, 30, 20)
    $Button_E = GUICtrlCreateButton('E', 50, 50, 30, 20)
    $Button_F = GUICtrlCreateButton('F', 90, 50, 30, 20)
    $Button_G = GUICtrlCreateButton('G', 10, 90, 30, 20)
    $Button_H = GUICtrlCreateButton('H', 50, 90, 30, 20)
    $Button_I = GUICtrlCreateButton('I', 90, 90, 30, 20)
    $Dummy_Up = GUICtrlCreateDummy()
    $Dummy_Down = GUICtrlCreateDummy()
    $Dummy_Left = GUICtrlCreateDummy()
    $Dummy_Right = GUICtrlCreateDummy()
    
    
    ControlFocus($hGui, '', $Button_A)
    Global $aAccelerators[4][2] = [['{UP}',$Dummy_Up],['{DOWN}',$Dummy_Down],['{LEFT}',$Dummy_Left],['{RIGHT}',$Dummy_Right]]
    GUISetAccelerators($aAccelerators, $hGui)
    
    
    GUISetState()
    
    
    While True
    	$nMsg = GUIGetMsg()
    	Switch $nMsg
    		Case -3
    			Exit
    		Case $Dummy_Up
    			_SetFocus(0,-1)
    		Case $Dummy_Down
    			_SetFocus(0,1)
    		Case $Dummy_Left
    			_SetFocus(-1,0)
    		Case $Dummy_Right
    			_SetFocus(1,0)
    		Case $Button_A, $Button_B, $Button_C, $Button_D, $Button_E, $Button_F, $Button_G, $Button_H, $Button_I
    			ConsoleWrite('Clicked: ' & ControlGetText($hGui, '', $nMsg) & @CRLF)
    	EndSwitch
    WEnd
    
    
    Func _SetFocus($Spalte, $Zeile)
    	Local Static $aButton[3][3] = [[$Button_A,$Button_B,$Button_C],[$Button_D,$Button_E,$Button_F],[$Button_G,$Button_H,$Button_I]]
    	Local Static $iCurrentLine = 0, $iCurrentRow = 0
    	$iCurrentLine += $Zeile
    	$iCurrentLine = $iCurrentLine > 2 ? 2 : ($iCurrentLine < 0 ? 0 : $iCurrentLine)
    	$iCurrentRow += $Spalte
    	$iCurrentRow = $iCurrentRow > 2 ? 2 : ($iCurrentRow < 0 ? 0 : $iCurrentRow)
    	ControlFocus($hGui, '', $aButton[$iCurrentLine][$iCurrentRow])
    EndFunc
    Alles anzeigen
  • Schnelle Hilfe leichtes Thema

    • BugFix
    • 18. Mai 2015 um 22:00

    Versuchs mal mit absolutem Pfad. Relativer Pfad in der VM könnte evtl. ein Problem sein. Sonst fällt mir da auch nix ein.

  • Button: 1. -ändern der Farbe- und 2. -Name des Button per Tastatur (Hotkey) erreichen-.

    • BugFix
    • 18. Mai 2015 um 20:59

    Wenn du einen Button mit eigenen Eigenschaften haben möchtest, kannst du diesen aus einem Label nachbilden. Da hast du dann recht große Spielmöglichkeiten.
    Ich poste hier mal ein altes Beispielskript mit lauter farbigen Button, die aus Labeln erstellt werden, sich aber auch optisch wie Button verhalten.
    Vielleicht gibt dir das einen Ansatz.

    Spoiler anzeigen
    AutoIt
    #include <GUIConstants.au3>
    ; 15 Colored Buttons Example.au3
    Dim $Key[16]
    Local $Row = 5, $Column = 5, $Color = -1
    Local $BtnColors[16] = [15, '0xff0000', '0x00ff00', 'x0000ff', '0xffff00', '0xffffff', '0xffaa00', '0xaaff00', '0x00aaff', '0xffffaa', '0xdddddd', '0xffee00', '0xccff00', '0x00ddff', '0xffeedd', '0x000000']
    GUICreate("15 Colored Buttons Example", 300, 100, 100, 100)
    
    
    For $x = 1 To 15
        $ret = _GUICtrlCreateColorButton("test" & $x, $Column, $Row, 50, 20, $BtnColors[$x], $Color)
        $Key[$x] = $ret[0]
        $Column += 60
        If $Column > 245 Then $Column = 5
        If $Column == 5 Then $Row += 30
        If $x == 14 Or $Column == 125 Then
            $Color = '0xffffff'
        Else
            $Color = ''
        EndIf
    Next
    GUISetState()
    
    
    Do
        $msg = GUIGetMsg()
    
        For $x = 1 To 15
            If $msg == $Key[$x] Then
                GUICtrlSetStyle($Key[$x], $SS_ETCHEDFRAME)
                MsgBox(0, "colorbutton pressed", "You pressed cb" & $x, 1)
                GUICtrlSetStyle($Key[$x], $SS_NOTIFY + $SS_GRAYRECT)
                ExitLoop
            EndIf
        Next
    Until $msg = $GUI_EVENT_CLOSE
    
    
    ;=============================================================================
    ;
    ; Function Name:   _GUICtrlCreateColorButton()
    ;
    ; Description:     Creates a colored Button
    ;
    ; Syntax:          _GUICtrlCreateColorButton($text, $left, $top, $width, $height,$bkcolor[,$fontcolor] _
    ;											 [,$fontsize][,$fontweight][,$fontattrib][,$fontname])
    ;
    ; Parameter(s);      $text = The text of the control
    ;                    $left = The left side of the control
    ;                    $top = The top of the control
    ;                    $width = The width of the control
    ;                    $height = The height of the control
    ;                    $bkcolor = Backgroundcolor of the control
    ;                    $fontcolor = [optional] Fontcolor of the control
    ;					 $fontsize = [optional] Schriftgröße (default 9)
    ;					 $fontweight = [optional] Zeichenbreite (default 400)
    ;					 $fontattrib = [optional] Schriftattribut (kursiv:2 unnterstrichen:4 durchgestrichen:8)
    ;					 $fontname = [optional] Schriftfont
    ;
    ; Return Value(s):  array[1] = used to change colors
    ;                   array[0] = notifies GUIGetMsg if user clicks
    ;
    ; Author:            rakudave <rakudave@gmx.net>
    ;					Erweiterung $fontsize, $fontweight, $fontattrib, $fontname von BugFix
    ;==========================================================================================
    Func _GUICtrlCreateColorButton($text, $left, $top, $width, $height, $bkcolor, $fontcolor = -1, _
    	$fontsize = 9, $fontweight = 400, $fontattrib = "default", $fontname = "default")
        Local $colbut[2]
        If $fontcolor == -1 Then $fontcolor = 0x000000
        $colbut[0] = GUICtrlCreateLabel("", $left, $top, $width, $height, $SS_BLACKRECT)
        GUICtrlCreateLabel("", $left, $top, $width - 1, $height - 1, $SS_WHITERECT)
        GUICtrlCreateLabel("", $left + 1, $top + 1, $width - 2, $height - 2, $SS_GRAYRECT)
        $colbut[1] = GUICtrlCreateLabel($text, $left + 1, $top + 1, $width - 3, $height - 3, $SS_NOTIFY & $SS_CENTER)
        GUICtrlSetBkColor(-1, $bkcolor)
        GUICtrlSetColor(-1, $fontcolor)
    	GUICtrlSetFont(-1, $fontsize, $fontweight, $fontattrib, $fontname)
        Return $colbut
    EndFunc ;==>_GUICtrlCreateColorButton
    Alles anzeigen

    Edit: Sehe gerade, dass du dich auf diesen Post bezogen hast. Übrigens ist die Aussage von 2007. Damals gab es noch kein GUICtrlSetColor für Button.
    Diese halbschattierte Farbdarstellung hat aber mit der Farbe selbst nichts zu tun, das ist ein reiner Windows-Effekt. Ich hab es noch nicht ausgetestet, aber vielleicht ist dieser Effekt für die Standard-Windows-Farbpalette verfügbar.
    Falls das nicht klappt, bleibt die Möglichkeit einen Button aus zwei Labeln abzubilden. das untere etwas dunkler als das obere. Da drüber ein transparentes Label als eigentlichen Button.

  • Längste Collatz-Folge | Project Euler

    • BugFix
    • 13. Mai 2015 um 17:15
    Zitat von AspirinJunkie

    Ich komme hierbei auf 525 (bzw. 524 wenn man die erste Zahl nicht mitzählt).

    Oops, war ein Fehler, in falscher Zeile addiert - nun korrigiert, spart gleich 4 Sekunden. ;)

  • Längste Collatz-Folge | Project Euler

    • BugFix
    • 13. Mai 2015 um 11:11

    Edit: Da hatte ich die Addition der Terme eine Zeile zu früh - nun passt es.

    Meine Variante:

    Spoiler anzeigen
    AutoIt
    Local $iCalc = 999999
    Local $iMax, $iLen = 1
    Local Const $ARRAYLIMIT = $iCalc +1
    Local $aTerm[$ARRAYLIMIT] ; [Index]=Länge Folge
    Local $hTimer = TimerInit()
    
    
    For $i = 1 To $iCalc
    	If $aTerm[$i] Then ContinueLoop
    	$iTmp = _GetCollatz($i, $aTerm)
    	$aTerm[$i] = $iTmp
    	If $iTmp > $iLen Then
    		$iLen = $iTmp
    		$iMax = $i
    	EndIf
    Next
    
    
    ConsoleWrite(StringFormat('%.3f s %sLängste Folge bei Zahl: %i = %i Terme', TimerDiff($hTimer)/1000, @LF, $iMax, $iLen) & @LF)
    #cs
    39.898 s 
    Längste Folge bei Zahl: 837799 = 524 Terme
    #ce
    
    
    Func _GetCollatz($i, ByRef $aTerm)
    	Local $iTerm = 0
    	Do
    		If $i < $ARRAYLIMIT And $aTerm[$i] Then Return $iTerm + $aTerm[$i]
    		$iTerm += 1
    		$i = Mod($i,2) ? (3*$i+1) : ($i/2)
    	Until $i = 1
    	Return $iTerm
    EndFunc
    Alles anzeigen
  • Verbindung zum Oracle Server

    • BugFix
    • 12. Mai 2015 um 07:44
    Zitat von 4ern

    Jedoch hab ich nun das Problem mit Windows8.1 64 Bit

    Genau das ist der springende Punkt: MSDAORA ist eine 32bit-Dll und es gibt keine 64bit-Version. Der Support dafür wurde von M$ auch eingestellt, die verweisen nur noch auf den Oracle-Treiber.

  • Verbindung zum Oracle Server

    • BugFix
    • 11. Mai 2015 um 13:23

    Ich selber habe kein Oracle zur Verfügung und hatte dir deshalb nur ein Bsp. aus dem Web portiert.
    Du hattest noch gefragt, was MSDAORA bedeutet, nun das ist der Microsoft OLE DB-Provider für Oracle, ich vermute das ist abgeleitet aus MicroSoftDataAccessORAcle.
    Google mal speziell nach MSDAORA, da sollten einige Problemlösungen zu finden sein.

  • Rückgabe von ControlCommand per DLL-Struct auslesen

    • BugFix
    • 9. Mai 2015 um 22:45

    Da Notepad++ genau wie SciTE das Scintilla Modul nutzen, sollte auch der Zugriff identisch möglich sein.
    Hier das Interface für SciTE, sollte also analog laufen: SciTE-Interface

  • [JavaScript] Zeiträume

    • BugFix
    • 3. Mai 2015 um 11:44
    Zitat von Make-Grafik

    Wie man das am besten realisiert muss ich mir erst selber noch überlegen, besonders bei den Feiertagen die sich jährlich um irgendwelche Tage verschieben. Aber im Netz gibt es ja genug Formeln dazu wie z.B. die Osterformel. Ich überlege mir mal wie man das am besten umsetzen kann und was noch alles zu beachten ist. Die Zwischenergebnisse teile ich dir dann mit damit du Anregungen bekommst.

    Berechnung für Feiertage (fix und veränderlich, bundeslandspezifisch) liegt schon hier im Forum vor. Leider sind z. Zt. alle Dateianhänge verschwunden, aber ich glaube, dass ich meist den Code im Post auch zusätzlich direkt eingefügt habe. Einfach mal suchen.

    Edit: ja, ist im Post - hier: https://autoit.de/index.php/Thre…tID=524#post524

  • [JavaScript] Zeiträume

    • BugFix
    • 1. Mai 2015 um 13:50

    Mir ist gerade eine wesentlich effektivere Methode eingefallen, Wochentag-Zeit in Minuten umzurechnen:

    EDIT: Ich habe gleich mal die kpl. Auswertefunktion erstellt.

    AutoIt
    ConsoleWrite(_GetWorkTime('Sa 19:00', 'So 3:00') & @CRLF) ; Ausgabe: "AZ: 8:00; enthaltene ZZ: 3:00"
    
    
    Func _DayTime2Min($sDayTime) ; 'Mo 13:30' oder 'Sa 0:15'
    	Local $aTime = StringSplit(StringTrimLeft($sDayTime, 3), ':')
    	Return ((StringInStr('MoDiMiDoFrSaSo', StringLeft($sDayTime, 2))-1)/2)*1440 + _
    		$aTime[1]*60 + $aTime[2]
    EndFunc
    
    
    Func _GetWorkTime($sDayTimeStart, $sDayTimeEnd, $sExtraChargeFirst='So 0:00', $sExtraChargeLast='So 24:00')
    	Local $iStart = _DayTime2Min($sDayTimeStart), $iEnd = _DayTime2Min($sDayTimeEnd), $iXStart = _DayTime2Min($sExtraChargeFirst)
    	Local $iXEnd = _DayTime2Min($sExtraChargeLast), $iWorktime = $iEnd - $iStart, $iExtraCharge = 0
    	Select
    		Case StringLeft($sDayTimeStart, 2) = 'So' And StringLeft($sDayTimeEnd, 2) = 'Mo' ; So auf Mo ?
    			$iExtraCharge = $iXEnd - $iStart
    			$iWorktime += 10080 ; die erste Berechnung hat negatives Ergebnis, da Ende < Anfang ist - Shift um eine Woche nötig
    		Case $iStart >= $iXStart
    			$iExtraCharge = $iEnd - $iStart
    		Case $iStart < $iXStart And $iEnd > $iXStart
    			$iExtraCharge = $iEnd - $iXStart
    	EndSelect
    	Return StringFormat('AZ: %d:%02d; enthaltene ZZ: %d:%02d', Int($iWorktime/60), Mod($iWorktime, 60), Int($iExtraCharge/60), Mod($iExtraCharge, 60))
    EndFunc
    Alles anzeigen
  • [JavaScript] Zeiträume

    • BugFix
    • 29. April 2015 um 19:05

    Das Problem ist doch sicher nicht die Sprachsyntax, sondern die Programmlogik - oder?

    So würde ich das in AutoIt angehen:

    AutoIt
    ; Wochentagsbezogene Zeitschiene erstellen
    ; beginnend Mo = 0, endend So = 10080 (7d * 24h * 60m)
    ; zuschlaglose Zeit wäre also Mo bis incl. Sa. = 6*24*60 = 8640
    
    
    Func _DayTime2Min($sDayTime) ; 'Mo 13:30' oder 'Sa 0:15'
    	Local Const $1d = 1440
    	Local $iMin
    	Local $aDays[8] = ['','Mo','Di','Mi','Do','Fr','Sa','So']
    	Local $aDate = StringSplit($sDayTime, ' ')
    	For $i = 1 To 7
    		If $aDays[$i] = $aDate[1] Then
    			$iMin = ($i-1) * $1d
    			ExitLoop
    		EndIf
    	Next
    	$iMin += StringLeft($aDate[2], StringInStr($aDate[2], ':')-1) * 60 + StringRight($aDate[2], 2)
    	Return $iMin
    EndFunc
    
    
    ; das folgende kannst du in einer Funktion abarbeiten um zu unterscheiden ob Star-/Endzeit im Zuschlagszeitraum liegen
    
    
    ; Arbeitsbeginn
    $sStart = 'Sa 19:00'
    $iMinStart = _DayTime2Min($sStart)
    
    
    ; Arbeitsende
    $sEnde = 'So 03:00'
    $iMinEnde = _DayTime2Min($sEnde)
    
    
    ; Beginn Zuschlagzeit
    $sZuschlagStart = 'So 0:00'
    $iZuschlStart = _DayTime2Min($sZuschlagStart)
    
    
    ; zuschlagfähige Zeit
    $iZuschlagArbeitszeit = $iMinEnde - $iZuschlStart
    
    
    ConsoleWrite($iZuschlagArbeitszeit & @CRLF)  ; = 180
    Alles anzeigen
  • GUICtrlCreateDate Ausgabe auf Deutsch und Englisch

    • BugFix
    • 26. April 2015 um 23:00
    AutoIt
    GUICreate('')
    $d = GUICtrlCreateDate('2015/04/26', 10, 20)
    GUISetState()
    
    
    While 1
    	Switch GUIGetMsg()
    		Case -3
    			Exit
    		Case $d
    			ConsoleWrite(GUICtrlRead($d) & @CRLF)
    			ConsoleWrite(_ConvertToENDate(GUICtrlRead($d)) & @CRLF)
    	EndSwitch
    WEnd
    
    
    Func _ConvertToENDate($sDateGE, $fUS=0)
    	If StringLen($sDateGE) = 10 Then ; short
    		If $fUS Then ; MM/DD/YYYY
    			Return StringRegExpReplace($sDateGE, '(\d{2})\.(\d{2})\.(\d{4})', '$2/$1/$3')
    		Else         ; DD/MM/YYYY
    			Return StringReplace($sDateGE, '.', '/')
    		EndIf
    	Else
    		Local $aWDay[7][2] = [['Montag','Monday'],['Dienstag','Tuesday'],['Mittwoch','Wednesday'],['Donnerstag','Thursday'],['Freitag','Friday'],['Samstag','Saturday'],['Sonntag','Sunday']]
    		Local $aMonth[12][2] = [['Januar','January'],['Februar','February'],['März','March'],['April','April'],['Mai','May'],['Juni','June'],['Juli','July'], _
    								['August','August'],['September','September'],['Oktober','October'],['November','November'],['Dezember','December']]
    		Local $aDate = StringRegExp($sDateGE, '(\w+),\s(\d{2})\.\s([\wä]+)\s(\d{4})', 3)
    		Local $sWDay, $sMonth
    		For $i = 0 To 6
    			If $aWDay[$i][0] = $aDate[0] Then
    				$sWDay = $aWDay[$i][1]
    				ExitLoop
    			EndIf
    		Next
    		For $i = 0 To 11
    			If $aMonth[$i][0] = $aDate[2] Then
    				$sMonth = $aMonth[$i][1]
    				ExitLoop
    			EndIf
    		Next
    		If $fUS Then
    			Return StringFormat('%s, %s %i, %i', $sWDay, $sMonth, $aDate[1], $aDate[3])
    		Else
    			Return StringFormat('%s, %i %s %i', $sWDay, $aDate[1], $sMonth, $aDate[3])
    		EndIf
    	EndIf
    EndFunc
    Alles anzeigen
  • GUICtrlCreateDate Ausgabe auf Deutsch und Englisch

    • BugFix
    • 26. April 2015 um 17:34

    Wenn du es ausliest bekommst du das Ergebnis (je nach eingestelltem Format Short/Long) im Datumslayout des PC.
    Ein deutscher PC spuckt im Longformat dann aus: Freitag, 10. April 2015 und im Shortformat 10.04.2015.
    Das kannst du doch, wenn du es in eine Datei schreiben willst, einfach umwandeln. Ein paar Stringoperationen, bischen Array und fertig ist der Lack.

    Edit:
    Wichtig wäre noch welches Englisch du wünscht: EN-englisch oder US-englisch (oder Programmierenglisch?)
    Denn das Datum wird beim Programmieren im Format YYYY/MM/DD angegeben - dieses Format ist aber weder in GB noch in US üblich.
    Im britischen Englisch steht 5/10/15 für den 5. Oktober 2015, im amerikanischen Englisch für den 10. Mai 2015. Auch das Langformat ist unterschiedlich:
    Britisches Englisch: 5(th) (of) October(,) 2015
    Amerikanisches Englisch: October (the) 5(th), 2015

    Nichts ist verwirrender als Datumsangaben auf englisch, wenn man nicht weiß ob der Autor aus USA oder GB stammt.

  • HotKeys in SciTE

    • BugFix
    • 23. April 2015 um 20:31

    In direkter Form, also das Schreiben in einer Auswahl verändert sequenziell auch die anderen Auswahlen, ist mit SciTE nicht möglich, da das Multi-Cursering in SciTE keine getrennten Regionen unterstützt. Sowas geht z. B. mit SublimeText.

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™