Hi,
..neulich war es mal wieder soweit: Gilt meine Monatskarte heute noch oder nicht?
Für so einen Fall habe ich mir mal ein HTA-Skript geschrieben, aber das kann's doch
nicht sein, nicht wirklich..
Außerdem mußte ich ja das neue Scite ausprobieren und auch die neueste Beta.
Alles k.P., also habe ich mir mit Koda erstmal eine 'schicke' Oberfläche gebastelt.
(Meine erste mit Kalender-Controls..)
Koda hat auch brav mitgespielt, sogar bei der Formatierung des Datums, okay.
Ich füge also den Code in das Skript ein und wer beschreibt mein Erstaunen, als ich
dort eine Zeile mit einem (für mich) neuen Befehl fand:
GuiCtrlSendMsg(-1, 0x1005, 0, "ddd, dd.MM.yyyy")
[/autoit]Da die Zeile von Scite nicht bemängelt wurde, hatte ich keine Probleme damit..
Ich hatte das Skript fast fertig, da ritt mich der Teufel und ich ließ es per Beta-Run
laufen(ob das Absicht war oder ein Versehen weiß ich jetzt nicht mehr
Jedenfalls lief es nicht so, wie ich es erwartet hatte(in den Kalender-Controls stand
nur der Tag des Monats..). Ooops, verschrieben? Nö, mit der Stable ist alles klar.
Ich habe mir dann die Hilfe zum Kalender-Control angesehen und $DTS_SHORTDATEFORMAT
gefunden, damit geht es auch und wer den Wochentag braucht, kann ja das jeweilige
Control aufklappen. So, genug der Vorrede, hier isses:
Spoiler anzeigen
;<AutoItScript>
#NoTrayIcon ;Ohne Icon im Tray, hängende Prozesse im ProcessViewer beenden
Opt("MustDeclareVars", 0) ;0=ohne, 1=erfordert Variablen-Deklaration
#include <GUIConstants.au3>
#include <Constants.au3>
#include <date.au3>
;+----------------------------------------------------------------------------+
;| Header: Bestimmen der Übergabeparameter |
;| ( Alles Strings(!!!), bis auf ArgC ) |
;| FontAnzeigeCheck: |Il1 sind Alt-0124, Großes i, Kleines L, Eins |
Const $Autor="Zeitkarte.au3 ©2007 by ytwinky, MD"; |
;| EMail: [email='PIII1kSystem-AutoIt3Forum@yahoo.de'][/email] |
;| AutoIt3-Version: aktuelle beta |
;| Editor: SciTE aktuelle Version, feste Schriftart |
;| Zweck : Ermitteln der FBC-Versionen(geht nur auf PIII1k) |
;| Tab auf 2 setzen wg. Lesbarkeit |
;+----------------------------------------------------------------------------+
Const $Moka=31, $Woka=7
Dim $Diff, $s
#Region ### START Koda GUI section ### Form=D:\Sprachen\AutoIt3\au3\kxf\Zeitkarte.kxf
$Zeitkarte=GUICreate("Zeitkarte", 308, 209, 248, 209)
GUISetFont(10, 400, 0, "Arial")
$Rahmen=GUICtrlCreateGroup("", 0, -44, 308, 253)
$Titel=GUICtrlCreateLabel("Zeitkarten-Berechnung", 8, 4, 295, 33, $SS_CENTER)
GUICtrlSetFont(-1, 18, 800, 0, "Arial")
GUICtrlSetColor(-1, 0x000080)
GUICtrlSetTip(-1, "©2007 by ytwinky, MD")
$grModus=GUICtrlCreateGroup("Berechnungsmodus", 156, 36, 144, 105)
GUICtrlSetFont(-1, 10, 800, 0, "Arial")
$rbMonat=GUICtrlCreateRadio("Monatskarte", 160, 56, 113, 17)
GUICtrlSetFont(-1, 10, 400, 0, "Arial")
GUICtrlSetTip(-1, "..gilt " &$MoKa &" Tage")
$rbWoche=GUICtrlCreateRadio("Wochenkarte", 160, 86, 113, 21)
GUICtrlSetFont(-1, 10, 400, 0, "Arial")
GUICtrlSetTip(-1, "..gilt " &$WoKa &" Tage")
$rbDelta=GUICtrlCreateRadio("Datumsdifferenz", 160, 120, 113, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
GUICtrlSetFont(-1, 10, 400, 0, "Arial")
GUICtrlSetTip(-1, "..berechnen ;-))")
GUICtrlCreateGroup("", -99, -99, 1, 1)
$grErster=GUICtrlCreateGroup("Erster Geltungstag", 8, 36, 142, 49)
GUICtrlSetFont(-1, 10, 800, 0, "Arial")
$ETag=GUICtrlCreateDate("2000/12/13", 16, 56, 127, 24, $DTS_SHORTDATEFORMAT)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$grLetzter=GUICtrlCreateGroup("Letzter Geltungstag", 8, 92, 142, 49)
GUICtrlSetFont(-1, 10, 800, 0, "Arial")
$LTag=GUICtrlCreateDate(_NowDate(), 16, 112, 127, 24, $DTS_ShortDATEFORMAT)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$grDelta=GUICtrlCreateGroup("Differenz in Tagen", 8, 148, 142, 53)
GUICtrlSetFont(-1, 10, 800, 0, "Arial")
$efDelta=GUICtrlCreateInput("", 16, 169, 57, 24)
GUICtrlSetFont(-1, 10, 400, 0, "Arial")
GUICtrlCreateGroup("", -99, -99, 1, 1)
$btQuit=GUICtrlCreateButton("Quit", 224, 177, 75, 25, 0)
GUICtrlSetFont(-1, 10, 800, 0, "Arial")
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
_DeltaDate()
While 1
Switch GUIGetMsg()
Case $rbMonat, $rbWoche, $rbDelta
If GUICtrlRead($rbDelta)=$GUI_CHECKED Then
GUICtrlSetState($efDelta, $GUI_Show)
GUICtrlSetState($grDelta, $GUI_Show)
_DeltaDate()
Else
GUICtrlSetState($efDelta, $GUI_HIDE)
GUICtrlSetState($grDelta, $GUI_HIDE)
$Diff=$Moka
If GuiCtrlRead($rbWoche)=$GUI_CHECKED Then $Diff=$Woka
$s=_Ger2EngDate($ETag)
$s=_DateAdd("D", $Diff-1, $s)
GUICtrlSetData($LTag, $s)
EndIf
Case $GUI_EVENT_CLOSE, $btQuit
Exit
EndSwitch
Wend
Func _DeltaDate()
Dim $e=_Ger2EngDate($ETag), $l=_Ger2EngDate($LTag), $d=_DateDiff("D", $e, $l)+1
If @Error Then $d="@Error " &@Error
GUICtrlSetData($efDelta, $d)
EndFunc
Func _Ger2EngDate($From)
Dim $d=GuiCtrlRead($From), $n=StringRight($d, 4) &"/" &StringMid($d, 4, 2)
Return $n &"/" &StringLeft($d, 2)
EndFunc
;</AutoItScript>
[/autoit]Ach so, ne Frage habe ich ja auch noch:
Gibt es eine (kurze) Erklärung für das, was ich eingangs beschrieben habe?
Ich würde nämlich schon ganz gerne den Wochentag mit in der Maske haben..
(Nein, nicht in einem Extra-Input-Feld :D)
Gruß
ytwinky