SlimCalc

  • Hey,

    Hier mal mein erstes Programm! Release v.0.1 "16.5.09 20:19"
    Würde mich über Feedback & Verbesserungsvorschläge freuen!

    Updates:
    1. Update: "16.5.09 20:38"
    Fehler beim Einfüge Gui beseitigt!
    Version 0.1.1
    2. Update: "16.5.09 22:38"
    Kopier Funktion hinzugefügt
    Tastaturzuweisung hinzugefügt (von Raupi)
    Version 0.1.2
    3. Update: "27.5.09 22:52"
    Neues Gui-Konzept
    erweiterte Tastatur
    Verlauf
    Öffnen-Funktion
    Code optimiert
    Version 1.1
    4. Update: "27.5.09 23:38"
    Bugfix "erweiterte Tastatur"
    Version 1.11

    Script:

    Spoiler anzeigen
    [autoit]

    #NoTrayIcon
    Opt("GuiResizeMode", 802)

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

    Dim $iInfo[5] = ["SCalc", 1.11, "Verlauf", "Tastatur", "Einfügen"]

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

    Dim $hGui = GUICreate($iInfo[0] & " " & $iInfo[1], 140, 170, -1, -1, 0x80C40000)
    Dim $hEdit = GUICtrlCreateEdit("", 0, 0, 140, 150, 0x0042)
    GuiCtrLSetResizing($hEdit, 1)
    GUICtrlSetBkColor($hEdit, 0xFFFFFF)

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

    Dim $hMenu[3] = [GUICtrlCreateMenu("&Datei"), GUICtrlCreateMenu("&Bearbeiten"), GUICtrlCreateMenu("&?")]
    Dim $hMenuItem[11] = ["Öffnen", "Speichern", "Verlauf", "", "Beenden", "Einfügen", "Kopieren", "Löschen", "", "Tastatur", "About"]
    For $i = 0 To 10
    $hMenuItem[$i] = GUICtrlCreateMenuItem($hMenuItem[$i], $hMenu[Int($i / 5)])
    Next
    GUISetState(@SW_SHOW, $hGui)

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

    Dim $hGui2 = GUICreate($iInfo[0] & " - " & $iInfo[2], 140, 170, -180, -20, -1, BitOR(0x00040000, 0x00000080, 0x00000100, 0x00000040), $hGui)
    Dim $hEdit2 = GUICtrlCreateEdit("", 0, 0, 140, 170, 0x00300840)
    GUICtrlSetBkColor($hEdit2, 0xFFFFFF)
    GUISetState(@SW_HIDE, $hGui2)

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

    Dim $hGui3 = GUICreate($iInfo[0] & " - " & $iInfo[3], 150, 80, 180, 60, -1, BitOR(0x00040000, 0x00000080, 0x00000100, 0x00000040), $hGui)
    Dim $hButton4 = GuiCtrlCreateButton(">", 130, 20, -1, 40)
    Dim $hButton1[11] = [7, 8, 9, 4, 5, 6, 1, 2, 3, 0, "."]
    For $i = 0 To 10
    $hButton1[$i] = GUICtrlCreateButton($hButton1[$i], Mod($i, 3) * 20 + ($i = 10) * 20, Int($i / 3) * 20, 20 + ($i = 9) * 20, 20)
    Next
    Dim $hButton2[9] = ["/", "*", "(", "-", "+", ")", "D", "C", "="]
    For $i = 0 To 8
    $hButton2[$i] = GUICtrlCreateButton($hButton2[$i], Mod($i, 3) * 20 + 62 - ($i = 8) * 40, Int($i / 3) * 20 + ($i = 8) * 20, 20 + ($i >= 7) * Mod($i, 6) * 20, 20)
    Next
    Dim $hButton3[8] = ["Log", "Sin", "Exp", "Cos", "^x", "Tan", "Sqrt", "Pi"]
    For $i = 0 To 7
    $hButton3[$i] = GUICtrlCreateButton($hButton3[$i], Mod($i + 1, 2) * 20 + (Mod($i + 1, 2) = 0) * 60 + 130, Int($i + 1 / 2) * 10 - (Mod($i + 1, 2) = 0) * 10, 40, 20)
    Next
    GUISetState(@SW_HIDE, $hGui3)

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

    Dim $hGui4 = GUICreate($iInfo[0] & " - " & $iInfo[4], 200, 60, -1, -1, -1, BitOR(0x00040000, 0x00000080, 0x00000100, 0x00000040), $hGui)
    Dim $hInput = GUICtrlCreateInput("", 10, 10, 180, 20)
    Dim $hButton5[2] = [GUICtrlCreateButton("Zwischenablage", 10, 35, 90, 20), GUICtrlCreateButton("OK", 100, 35, 90, 20)]
    GUISetState(@SW_HIDE, $hGui4)

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

    Dim $hGui5 = GUICreate("About", 200, 110, -1, -1, -1, BitOR(0x00040000, 0x00000080, 0x00000100, 0x00000040), $hGui)
    Dim $hLabelI[3] = [GUICtrlCreateLabel("SlimCalc", 10, 10, 70, 20), GUICtrlCreateLabel("by freakisch", 80, 18, 60, 20), GUICtrlCreateLabel("Version:" & $iInfo[1] & @CRLF & "Thanks to: ChaosKeks, Raupi", 10, 40, 140, 30)]
    Dim $hButton6 = GUICtrlCreateButton("OK", 100, 85, 95, 20)
    GUICtrlSetFont($hLabelI[0], 14, 400, 0, "Impact")
    GUICtrlSetFont($hLabelI[1], 8, 400, 2)
    GUICtrlSetFont($hLabelI[2], 8, 400, 2)
    GUISetState(@SW_HIDE, $hGui4)

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

    While True
    Dim $Msg = GUIGetMsg()
    Switch $Msg
    Case $hMenuItem[0]
    Dim $hFile = FileOpenDialog("Öffnen", @DesktopDir, "Textdateien (*.txt)")
    If Not @error Then
    Dim $iFile = StringSplit(FileRead($hFile), "")
    For $i = 1 To $iFile[0]
    If StringRegExp($iFile[$i], "^((\d+)|(\+|-|/|\*))") Then GUICtrlSetData($hEdit, GUICtrlRead($hEdit) & $iFile[$i])
    Next
    EndIf
    Case $hMenuItem[1]
    Dim $hFile = FileSaveDialog("Speichern", @DesktopDir, "Textdateien (*.txt)")
    If Not @error Then FileWrite($hFile & ".txt", GUICtrlRead($hEdit))
    Case $hMenuItem[2]
    GUISetState(@SW_SHOW, $hGui2)
    WinActivate($hGui2)
    Case $hMenuItem[4]
    Exit
    Case $hMenuItem[5]
    GUISetState(@SW_SHOW, $hGui4)
    WinActivate($hGui4)
    Case $hMenuItem[6]
    ClipPut(GUICtrlRead($hEdit))
    Case $hMenuItem[7]
    GUICtrlSetData($hEdit, "")
    Case $hMenuItem[9]
    GUISetState(@SW_SHOW, $hGui3)
    GUICtrlSetStyle($hEdit, 0x0842)
    WinActivate($hGui3)
    Case $hMenuItem[10]
    GUISetState(@SW_SHOW, $hGui5)
    WinActivate($hGui5)
    Case $hButton1[0] To $hButton2[5]
    GUICtrlSetData($hEdit, GUICtrlRead($hEdit) & GUICtrlRead($Msg))
    Case $hButton2[6]
    GUICtrlSetData($hEdit, StringTrimRight(GUICtrlRead($hEdit), 1))
    Case $hButton2[7]
    GUICtrlSetData($hEdit, "")
    Case $hButton2[8]
    GUICtrlSetData($hEdit, Execute(GUICtrlRead($hEdit)))
    GUICtrlSetData($hEdit2, GUICtrlRead($hEdit) & @CRLF, 1)
    Case $hButton3[0]
    Dim $Input = InputBox("Log", " ", "", "", 50, 110)
    If Not @error And $Input <> "" Then GUICtrlSetData($hEdit, GUICtrlRead($hEdit) & Log(Execute($Input)))
    Case $hButton3[1]
    Dim $Input = InputBox("Sin", " ", "", "", 50, 110)
    If Not @error And $Input <> "" Then GUICtrlSetData($hEdit, GUICtrlRead($hEdit) & Sin(Execute($Input)))
    Case $hButton3[2]
    Dim $Input = InputBox("Exp", " ", "", "", 50, 110)
    If Not @error And $Input <> "" Then GUICtrlSetData($hEdit, GUICtrlRead($hEdit) & Exp(Execute($Input)))
    Case $hButton3[3]
    Dim $Input = InputBox("Cos", " ", "", "", 50, 110)
    If Not @error And $Input <> "" Then GUICtrlSetData($hEdit, GUICtrlRead($hEdit) & Cos(Execute($Input)))
    Case $hButton3[4]
    GUICtrlSetData($hEdit, GUICtrlRead($hEdit) & "^")
    Case $hButton3[5]
    Dim $Input = InputBox("Tan", " ", "", "", 50, 110)
    If Not @error And $Input <> "" Then GUICtrlSetData($hEdit, GUICtrlRead($hEdit) & Tan(Execute($Input)))
    Case $hButton3[6]
    Dim $Input = InputBox("Sqrt", " ", "", "", 50, 110)
    If Not @error And $Input <> "" Then GUICtrlSetData($hEdit, GUICtrlRead($hEdit) & Sqrt(Execute($Input)))
    Case $hButton3[7]
    GUICtrlSetData($hEdit, GUICtrlRead($hEdit) & "3,14159265")
    Case $hButton4
    Dim $iWin = WinGetPos($hGui3)
    If GuiCtrlRead($hButton4) = "<" Then
    WinMove($hGui3, "", $iWin[0], $iWin[1], 156)
    GuiCtrlSetData($hButton4, ">")
    Else
    WinMove($hGui3, "", $iWin[0], $iWin[1], 236)
    GuiCtrlSetData($hButton4, "<")
    EndIf
    Case $hButton5[0]
    Dim $iClip = StringSplit(ClipGet(), "")
    For $i = 1 To $iClip[0]
    If StringRegExp($iClip[$i], "^((\d+)|(\+|-|/|\*))") Then GUICtrlSetData($hInput, GUICtrlRead($hInput) & $iClip[$i])
    Next
    Case $hButton5[1]
    GUICtrlSetData($hEdit, GUICtrlRead($hEdit) & GUICtrlRead($hInput))
    GUISetState(@SW_HIDE, $hGui4)
    GUICtrlSetData($hInput, "")
    Case $hButton6
    GUISetState(@SW_HIDE, $hGui5)
    Case - 3
    If WinActive($hGui) Then
    Exit
    ElseIf WinActive($hGui2) Then
    GUISetState(@SW_HIDE, $hGui2)
    ElseIf WinActive($hGui3) Then
    GUISetState(@SW_HIDE, $hGui3)
    GUICtrlSetStyle($hEdit, 0x0042)
    ElseIf WinActive($hGui4) Then
    GUISetState(@SW_HIDE, $hGui4)
    GUICtrlSetData($hInput, "")
    ElseIf WinActive($hGui5) Then
    GUISetState(@SW_HIDE, $hGui5)
    EndIf
    EndSwitch
    WEnd

    [/autoit]

    6 Mal editiert, zuletzt von freakisch (27. Mai 2009 um 23:42)

  • Find ich sehr schön gemacht! :)

    Zitat

    [Heute, 11:39] Raupi: Soll ich es dir machen?
    [Heute, 11:47] BugFix: "Soll ich es dir machen? " - also Raupi !! bitte nicht so öffentlich :rofl:

    Zitat

    [Heute, 11:51] BugFix: und ich werde es mir jetzt machen - das Mittagessen :P

    AMsg UDF v1.00.00 IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII 100%
    OwnStyle UDF Version 1.10.00 IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII 100%

  • ist das wirklich dein erstes programm ? Falls ja RESPEKT ?! Im ersten Programm Arrays das ist ganz schön anspruchsvoll
    Toll ! Lob von mir

  • Ich find es auch super! Vieleicht könntest du so dein Script ein bischen kürzen

    Spoiler anzeigen
    [autoit]

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Rechner", 309, 60, 193, 115)
    $Button1 = GUICtrlCreateButton("=", 230, 31, 75, 25, 0)
    $Input1 = GUICtrlCreateInput("", 7, 8, 296, 21)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case -3
    Exit
    Case $Input1
    GUICtrlSetData ($Input1,Execute (GUICtrlRead ($Input1)))
    EndSwitch
    WEnd

    [/autoit]

    mfg. Jam00

  • Vielen Dank für das positive Feedback :D

    mille86 werde ich einbauen :)

    Jam00 ich find es mit der For-Schleife übersichtlicher, außerdem stimmen die Abstände immer exact

    • Offizieller Beitrag

    @ freakisch Find ich klasse den Rechner . Habe dir noch eine Tastatursteurung dazugebastelt :D Wenn du willst kannst du sie ja übernehmen .

    Spoiler anzeigen
    [autoit]

    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <EditConstants.au3>
    #include <ButtonConstants.au3>
    Dim $hGuiA = (GUICreate("SCalc", 120, 160, -1, -1, $WS_CAPTION + $WS_POPUP + $WS_SYSMENU, $WS_EX_TOPMOST))
    GUISetState(@SW_SHOW, $hGuiA)
    Dim $AccelKeys[16][2]

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

    Dim $iMenu = (StringSplit("&Datei|&Bearbeiten", "|"))
    Dim $hMenu[UBound($iMenu)]
    For $i = 1 To (UBound($iMenu) - 1)
    $hMenu[$i] = (GUICtrlCreateMenu($iMenu[$i]))
    Next

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

    Dim $iMenuItem = (StringSplit("Speichern|Beenden|Löschen|Einfügen", "|"))
    Dim $hMenuItem[UBound($iMenuItem)]
    For $i = 1 To (UBound($iMenuItem) - 1)
    Switch $iMenuItem[$i]
    Case "Einfügen"
    $hMenuItem[$i] = (GUICtrlCreateMenuItem($iMenuItem[$i], $hMenu[2], $i - 1))
    Case "Löschen"
    $hMenuItem[$i] = (GUICtrlCreateMenuItem($iMenuItem[$i], $hMenu[2], $i - 1))
    Case Else
    $hMenuItem[$i] = (GUICtrlCreateMenuItem($iMenuItem[$i], $hMenu[1], $i - 1))
    EndSwitch
    Next

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

    Dim $iButtonsA = (StringSplit("1|4|7|0", "|"))
    Dim $hButtonsA[UBound($iButtonsA)]
    For $i = 1 To (UBound($iButtonsA) - 1)
    If $iButtonsA[$i] <> "0" Then
    $hButtonsA[$i] = (GUICtrlCreateButton($iButtonsA[$i], 10, $i * 20 + 30, 20, 20))
    Else
    $hButtonsA[$i] = (GUICtrlCreateButton($iButtonsA[$i], 10, $i * 20 + 30, 40, 20))
    EndIf
    $AccelKeys[$i - 1][0] = $iButtonsA[$i]
    $AccelKeys[$i - 1][1] = $hButtonsA[$i]
    Next

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

    Dim $iButtonsB = StringSplit("2|5|8", "|")
    Dim $hButtonsB[UBound($iButtonsB)]
    For $i = 1 To (UBound($iButtonsB) - 1)
    $hButtonsB[$i] = (GUICtrlCreateButton($iButtonsB[$i], 30, $i * 20 + 30, 20, 20))
    $AccelKeys[$i + 3][0] = $iButtonsB[$i]
    $AccelKeys[$i + 3][1] = $hButtonsB[$i]
    Next

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

    Dim $iButtonsC = (StringSplit("3|6|9|.", "|"))
    Dim $hButtonsC[UBound($iButtonsC)]
    For $i = 1 To (UBound($iButtonsC) - 1)
    $hButtonsC[$i] = (GUICtrlCreateButton($iButtonsC[$i], 50, $i * 20 + 30, 20, 20))
    $AccelKeys[$i + 6][0] = $iButtonsC[$i]
    $AccelKeys[$i + 6][1] = $hButtonsC[$i]
    Next

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

    Dim $iButtonsD = (StringSplit("/|*|=", "|"))
    Dim $hButtonsD[UBound($iButtonsD)]
    For $i = 1 To (UBound($iButtonsD) - 1)
    If $iButtonsD[$i] <> "=" Then
    $hButtonsD[$i] = (GUICtrlCreateButton($iButtonsD[$i], 70, $i * 20 + 30, 20, 20))
    Else
    $hButtonsD[$i] = (GUICtrlCreateButton($iButtonsD[$i], 70, $i * 20 + 30, 40, 40, $BS_DEFPUSHBUTTON))
    EndIf
    $AccelKeys[$i + 10][0] = $iButtonsD[$i]
    $AccelKeys[$i + 10][1] = $hButtonsD[$i]
    Next

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

    Dim $iButtonsE = (StringSplit("-|+", "|"))
    Dim $hButtonsE[UBound($iButtonsE)]
    For $i = 1 To (UBound($iButtonsE) - 1)
    $hButtonsE[$i] = (GUICtrlCreateButton($iButtonsE[$i], 90, $i * 20 + 30, 20, 20))
    $AccelKeys[$i + 13][0] = $iButtonsE[$i]
    $AccelKeys[$i + 13][1] = $hButtonsE[$i]
    Next
    GUISetAccelerators($AccelKeys)

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

    Dim $hInputA = (GUICtrlCreateInput("", 10, 10, 100, 30, $ES_AUTOHSCROLL + $ES_READONLY + $ES_RIGHT))
    GUICtrlSetFont($hInputA, 8, 400, 0, "Lucida Console")

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

    Dim $hGuiB
    Dim $hInputB
    Dim $hButtonF
    Dim $hButtonG

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

    While True
    Switch GUIGetMsg()
    Case $hMenuItem[1]
    Dim $File = GUICtrlRead($hInputA)
    Dim $iSaveDialog = FileSaveDialog("Speichern", @DesktopDir, "Textdateien (*.txt)")
    FileWrite($iSaveDialog & ".txt", $File)
    Case $hMenuItem[2]
    Exit
    Case $hMenuItem[3]
    GUICtrlSetData($hInputA, "")
    Case $hMenuItem[4]
    Dim $hGuiB = (GUICreate("Einfügen", 200, 60, -1, -1, $WS_CAPTION + $WS_POPUP + $WS_SYSMENU, $WS_EX_TOPMOST))
    GUISetState(@SW_SHOW, $hGuiB)
    Dim $hInputB = (GUICtrlCreateInput("", 10, 10, 180, 20))
    GUICtrlSetFont($hInputB, 8, 400, 0, "Lucida Console")
    Dim $hButtonF = (GUICtrlCreateButton("Zwischenablage", 10, 35, 90, 20))
    Dim $hButtonG = (GUICtrlCreateButton("OK", 100, 35, 90, 20))
    Case $hButtonsA[1]
    GUICtrlSetData($hInputA, (GUICtrlRead($hInputA) & "1"))
    Case $hButtonsA[2]
    GUICtrlSetData($hInputA, (GUICtrlRead($hInputA) & "4"))
    Case $hButtonsA[3]
    GUICtrlSetData($hInputA, (GUICtrlRead($hInputA) & "7"))
    Case $hButtonsA[4]
    GUICtrlSetData($hInputA, (GUICtrlRead($hInputA) & "0"))
    Case $hButtonsB[1]
    GUICtrlSetData($hInputA, (GUICtrlRead($hInputA) & "2"))
    Case $hButtonsB[2]
    GUICtrlSetData($hInputA, (GUICtrlRead($hInputA) & "5"))
    Case $hButtonsB[3]
    GUICtrlSetData($hInputA, (GUICtrlRead($hInputA) & "8"))
    Case $hButtonsC[1]
    GUICtrlSetData($hInputA, (GUICtrlRead($hInputA) & "3"))
    Case $hButtonsC[2]
    GUICtrlSetData($hInputA, (GUICtrlRead($hInputA) & "6"))
    Case $hButtonsC[3]
    GUICtrlSetData($hInputA, (GUICtrlRead($hInputA) & "9"))
    Case $hButtonsC[4]
    GUICtrlSetData($hInputA, (GUICtrlRead($hInputA) & "."))
    Case $hButtonsD[1]
    GUICtrlSetData($hInputA, (GUICtrlRead($hInputA) & "/"))
    Case $hButtonsD[2]
    GUICtrlSetData($hInputA, (GUICtrlRead($hInputA) & "*"))
    Case $hButtonsD[3]
    If GUICtrlRead($hInputA) <> "" Then
    Dim $Result = (GUICtrlRead($hInputA))
    GUICtrlSetData($hInputA, Execute($Result))
    EndIf
    Case $hButtonsE[1]
    GUICtrlSetData($hInputA, (GUICtrlRead($hInputA) & "-"))
    Case $hButtonsE[2]
    GUICtrlSetData($hInputA, (GUICtrlRead($hInputA) & "+"))
    Case $hButtonF
    GUICtrlSetData($hInputB, ClipGet())
    Case $hButtonG
    GUICtrlSetData($hInputA, (GUICtrlRead($hInputA) & GUICtrlRead($hInputB)))
    GUIDelete($hGuiB)
    GUISetState(@SW_ENABLE, $hGuiA)
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

    [/autoit]


    Edit : Fehler in der Tastaturzuweisung beseitigt.

  • @simon:P da hatten wir wohl die selbe Idee

    Raupi danke aber leider stimmt da etwas bei den Buttons nicht ?(

    2 Mal editiert, zuletzt von freakisch (16. Mai 2009 um 21:12)

    • Offizieller Beitrag

    So, habe ein Paar Fehler in der Tastaturabfrage beseitigt. Die Tastaturabfrage wurde auf das NumPad erweitert .

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <Array.au3>
    Dim $hGuiA = (GUICreate("SCalc", 120, 160, -1, -1, $WS_CAPTION + $WS_POPUP + $WS_SYSMENU, $WS_EX_TOPMOST))
    GUISetState(@SW_SHOW, $hGuiA)
    Dim $AccelKeys[32][2]

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

    Dim $iMenu = (StringSplit("&Datei|&Bearbeiten", "|"))
    Dim $hMenu[UBound($iMenu)]
    For $i = 1 To (UBound($iMenu) - 1)
    $hMenu[$i] = (GUICtrlCreateMenu($iMenu[$i]))
    Next

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

    Dim $iMenuItem = (StringSplit("Speichern|Beenden|Löschen|Einfügen", "|"))
    Dim $hMenuItem[UBound($iMenuItem)]
    For $i = 1 To (UBound($iMenuItem) - 1)
    Switch $iMenuItem[$i]
    Case "Einfügen"
    $hMenuItem[$i] = (GUICtrlCreateMenuItem($iMenuItem[$i], $hMenu[2], $i - 1))
    Case "Löschen"
    $hMenuItem[$i] = (GUICtrlCreateMenuItem($iMenuItem[$i], $hMenu[2], $i - 1))
    Case Else
    $hMenuItem[$i] = (GUICtrlCreateMenuItem($iMenuItem[$i], $hMenu[1], $i - 1))
    EndSwitch
    Next

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

    Dim $iButtonsA = (StringSplit("1|4|7|0", "|"))
    Dim $hButtonsA[UBound($iButtonsA)]
    For $i = 1 To (UBound($iButtonsA) - 1)
    If $iButtonsA[$i] <> "0" Then
    $hButtonsA[$i] = (GUICtrlCreateButton($iButtonsA[$i], 10, $i * 20 + 30, 20, 20))
    Else
    $hButtonsA[$i] = (GUICtrlCreateButton($iButtonsA[$i], 10, $i * 20 + 30, 40, 20))
    EndIf
    $AccelKeys[$i - 1][0] = $iButtonsA[$i]
    $AccelKeys[$i - 1][1] = $hButtonsA[$i]
    Next

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

    Dim $iButtonsB = StringSplit("2|5|8", "|")
    Dim $hButtonsB[UBound($iButtonsB)]
    For $i = 1 To (UBound($iButtonsB) - 1)
    $hButtonsB[$i] = (GUICtrlCreateButton($iButtonsB[$i], 30, $i * 20 + 30, 20, 20))
    $AccelKeys[$i + 3][0] = $iButtonsB[$i]
    $AccelKeys[$i + 3][1] = $hButtonsB[$i]
    Next

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

    Dim $iButtonsC = (StringSplit("3|6|9|.", "|"))
    Dim $hButtonsC[UBound($iButtonsC)]
    For $i = 1 To (UBound($iButtonsC) - 1)
    $hButtonsC[$i] = (GUICtrlCreateButton($iButtonsC[$i], 50, $i * 20 + 30, 20, 20))
    $AccelKeys[$i + 6][0] = $iButtonsC[$i]
    $AccelKeys[$i + 6][1] = $hButtonsC[$i]
    Next

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

    Dim $iButtonsD = (StringSplit("/|*|=", "|"))
    Dim $hButtonsD[UBound($iButtonsD)]
    For $i = 1 To (UBound($iButtonsD) - 1)
    If $iButtonsD[$i] <> "=" Then
    $hButtonsD[$i] = (GUICtrlCreateButton($iButtonsD[$i], 70, $i * 20 + 30, 20, 20))
    Else
    $hButtonsD[$i] = (GUICtrlCreateButton($iButtonsD[$i], 70, $i * 20 + 30, 40, 40, $BS_DEFPUSHBUTTON))
    EndIf
    $AccelKeys[$i + 10][0] = $iButtonsD[$i]
    $AccelKeys[$i + 10][1] = $hButtonsD[$i]
    Next

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

    Dim $iButtonsE = (StringSplit("-|+", "|"))
    Dim $hButtonsE[UBound($iButtonsE)]
    For $i = 1 To (UBound($iButtonsE) - 1)
    $hButtonsE[$i] = (GUICtrlCreateButton($iButtonsE[$i], 90, $i * 20 + 30, 20, 20))
    $AccelKeys[$i + 13][0] = $iButtonsE[$i]
    $AccelKeys[$i + 13][1] = $hButtonsE[$i]
    Next
    $AccelKeys[15][0] = "{+}"; Das Plus muß in die Plammern sonst wird es als Shift interpretiert
    $AccelKeys[16][0] = "{NUMPADADD}"
    $AccelKeys[16][1] = $AccelKeys[15][1]
    $AccelKeys[17][0] = "{NUMPADSUB}"
    $AccelKeys[17][1] = $AccelKeys[14][1]
    $AccelKeys[18][0] = "{NUMPADDIV}"
    $AccelKeys[18][1] = $AccelKeys[11][1]
    $AccelKeys[19][0] = "{NUMPADMULT}"
    $AccelKeys[19][1] = $AccelKeys[12][1]

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

    $AccelKeys[20][0] = "{NUMPAD0}"
    $AccelKeys[20][1] = $AccelKeys[3][1]
    $AccelKeys[21][0] = "{NUMPAD1}"
    $AccelKeys[21][1] = $AccelKeys[0][1]
    $AccelKeys[22][0] = "{NUMPAD2}"
    $AccelKeys[22][1] = $AccelKeys[4][1]
    $AccelKeys[23][0] = "{NUMPAD3}"
    $AccelKeys[23][1] = $AccelKeys[7][1]
    $AccelKeys[24][0] = "{NUMPAD4}"
    $AccelKeys[24][1] = $AccelKeys[1][1]
    $AccelKeys[25][0] = "{NUMPAD5}"
    $AccelKeys[25][1] = $AccelKeys[5][1]
    $AccelKeys[26][0] = "{NUMPAD6}"
    $AccelKeys[26][1] = $AccelKeys[8][1]
    $AccelKeys[27][0] = "{NUMPAD7}"
    $AccelKeys[27][1] = $AccelKeys[2][1]
    $AccelKeys[28][0] = "{NUMPAD8}"
    $AccelKeys[28][1] = $AccelKeys[6][1]
    $AccelKeys[29][0] = "{NUMPAD9}"
    $AccelKeys[29][1] = $AccelKeys[9][1]
    $AccelKeys[30][0] = "{NUMPADDOT}"
    $AccelKeys[30][1] = $AccelKeys[10][1]
    $AccelKeys[31][0] = ","
    $AccelKeys[31][1] = $AccelKeys[10][1]
    GUISetAccelerators($AccelKeys)

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

    Dim $hInputA = (GUICtrlCreateInput("", 10, 10, 100, 30, $ES_AUTOHSCROLL + $ES_READONLY + $ES_RIGHT))
    GUICtrlSetFont($hInputA, 8, 400, 0, "Lucida Console")

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

    Dim $hGuiB
    Dim $hInputB
    Dim $hButtonF
    Dim $hButtonG

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

    While True
    Switch GUIGetMsg()
    Case $hMenuItem[1]
    Dim $File = GUICtrlRead($hInputA)
    Dim $iSaveDialog = FileSaveDialog("Speichern", @DesktopDir, "Textdateien (*.txt)")
    FileWrite($iSaveDialog & ".txt", $File)
    Case $hMenuItem[2]
    Exit
    Case $hMenuItem[3]
    GUICtrlSetData($hInputA, "")
    Case $hMenuItem[4]
    Dim $hGuiB = (GUICreate("Einfügen", 200, 60, -1, -1, $WS_CAPTION + $WS_POPUP + $WS_SYSMENU, $WS_EX_TOPMOST))
    GUISetState(@SW_SHOW, $hGuiB)
    Dim $hInputB = (GUICtrlCreateInput("", 10, 10, 180, 20))
    GUICtrlSetFont($hInputB, 8, 400, 0, "Lucida Console")
    Dim $hButtonF = (GUICtrlCreateButton("Zwischenablage", 10, 35, 90, 20))
    Dim $hButtonG = (GUICtrlCreateButton("OK", 100, 35, 90, 20))
    Case $hButtonsA[1]
    GUICtrlSetData($hInputA, (GUICtrlRead($hInputA) & "1"))
    Case $hButtonsA[2]
    GUICtrlSetData($hInputA, (GUICtrlRead($hInputA) & "4"))
    Case $hButtonsA[3]
    GUICtrlSetData($hInputA, (GUICtrlRead($hInputA) & "7"))
    Case $hButtonsA[4]
    GUICtrlSetData($hInputA, (GUICtrlRead($hInputA) & "0"))
    Case $hButtonsB[1]
    GUICtrlSetData($hInputA, (GUICtrlRead($hInputA) & "2"))
    Case $hButtonsB[2]
    GUICtrlSetData($hInputA, (GUICtrlRead($hInputA) & "5"))
    Case $hButtonsB[3]
    GUICtrlSetData($hInputA, (GUICtrlRead($hInputA) & "8"))
    Case $hButtonsC[1]
    GUICtrlSetData($hInputA, (GUICtrlRead($hInputA) & "3"))
    Case $hButtonsC[2]
    GUICtrlSetData($hInputA, (GUICtrlRead($hInputA) & "6"))
    Case $hButtonsC[3]
    GUICtrlSetData($hInputA, (GUICtrlRead($hInputA) & "9"))
    Case $hButtonsC[4]
    GUICtrlSetData($hInputA, (GUICtrlRead($hInputA) & "."))
    Case $hButtonsD[1]
    GUICtrlSetData($hInputA, (GUICtrlRead($hInputA) & "/"))
    Case $hButtonsD[2]
    GUICtrlSetData($hInputA, (GUICtrlRead($hInputA) & "*"))
    Case $hButtonsD[3]
    If GUICtrlRead($hInputA) <> "" Then
    Dim $Result = (GUICtrlRead($hInputA))
    GUICtrlSetData($hInputA, Execute($Result))
    EndIf
    Case $hButtonsE[1]
    GUICtrlSetData($hInputA, (GUICtrlRead($hInputA) & "-"))
    Case $hButtonsE[2]
    GUICtrlSetData($hInputA, (GUICtrlRead($hInputA) & "+"))
    Case $hButtonF
    GUICtrlSetData($hInputB, ClipGet())
    Case $hButtonG
    GUICtrlSetData($hInputA, (GUICtrlRead($hInputA) & GUICtrlRead($hInputB)))
    GUIDelete($hGuiB)
    GUISetState(@SW_ENABLE, $hGuiA)
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

    [/autoit]


    Der Rechner kann jetzt auch per Tastaur bedient werden. Als Trennzeichen für die Zahlen können . und , verwendet werden.


    Edit: EIn paar Anregungen hab ich noch. Ein C und/oder CE Button , damit man nicht immer in die Menüzeile muß. Und was auch sinnvoll wäre, ein Rechenstreifen :D

  • Hab nochmal auf Anfrage ein wenig gekürzt.. dürfte so klappen, ist aber noch Accelerator-frei (mal sehen ob ich da ne Lösung finde).. ^^

    Spoiler anzeigen
    [autoit]

    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <EditConstants.au3>
    #include <ButtonConstants.au3>
    Opt("GuiOnEventMode",1)
    Dim $hGuiA = GUICreate("SCalc", 120, 160, -1, -1, $WS_CAPTION + $WS_POPUP + $WS_SYSMENU, $WS_EX_TOPMOST)
    GuiSetOnEvent($GUI_EVENT_CLOSE, "Terminate")
    Dim $hMenu[3]
    $hMenu[1] = GUICtrlCreateMenu("&Datei")
    $hMenu[2] = GUICtrlCreateMenu("&Bearbeiten")

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

    Dim $hMenuString = StringSplit("Speichern|Beenden|Löschen|Einfügen", "|")
    Dim $hMenuItem[UBound($hMenuString)]
    For $i = 1 To UBound($hMenuString) - 1
    $hMenuItem[$i] = GUICtrlCreateMenuItem($hMenuString[$i], $hMenu[Int($i/3)+1], $i - 1)
    GuiCtrlSetOnEvent(-1, "Menu")
    Next

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

    Dim $iButtonsA = StringSplit("1|2|3|/|-|4|5|6|*|+", "|")
    Dim $hButtonsA[UBound($iButtonsA)]
    For $i = 1 To UBound($iButtonsA) - 1
    $hButtonsA[$i] = GUICtrlCreateButton($iButtonsA[$i], Mod($i,6)*20+10-($i < 6)*20, Int($i/6)*20+50, 20, 20)
    GuiCtrlSetOnEvent(-1, "Keys")
    Next

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

    Dim $iButtonsB = StringSplit("7|8|9|0|.", "|")
    Dim $hButtonsB[UBound($iButtonsB)]
    For $i = 1 To UBound($iButtonsB) - 1
    $hButtonsB[$i] = GUICtrlCreateButton($iButtonsB[$i], Mod($i,4)*20+10-($i < 4)*20+($i = 5) * 20, Int($i/4)*20+90, 20+($i = 4) * 20, 20)
    GuiCtrlSetOnEvent(-1, "Keys")
    Next

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

    $hButtonsC = GUICtrlCreateButton("=", 70, 90, 40, 40, $BS_DEFPUSHBUTTON)
    GuiCtrlSetOnEvent(-1, "Calc")
    Dim $hInputA = GUICtrlCreateInput("", 10, 10, 100, 30, $ES_AUTOHSCROLL + $ES_READONLY + $ES_RIGHT)
    GuiCtrlSetBkColor(-1,0xFFFFFF)
    GUICtrlSetFont($hInputA, 8, 400, 0, "Lucida Console")
    GUISetState(@SW_SHOW, $hGuiA)

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

    While 1
    sleep(100)
    WEnd

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

    Func Keys()
    GuiCtrlSetData($hInputA,GuiCtrlRead(@Gui_CtrlId),1)
    EndFunc

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

    Func Calc()
    If GUICtrlRead($hInputA) <> "" Then
    Dim $Result = GUICtrlRead($hInputA)
    GUICtrlSetData($hInputA, Execute($Result))
    EndIf
    EndFunc

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

    Func Menu()
    Switch @GUI_CtrlId
    Case 5
    Dim $File = GUICtrlRead($hInputA)
    Dim $iSaveDialog = FileSaveDialog("Speichern", @DesktopDir, "Textdateien (*.txt)")
    FileWrite($iSaveDialog & ".txt", $File)
    Case 6
    Exit
    Case 7
    GUICtrlSetData($hInputA, "")
    Case 8
    Global $hGuiB = GUICreate("Einfügen", 200, 60, -1, -1, $WS_CAPTION + $WS_POPUP + $WS_SYSMENU, $WS_EX_TOPMOST)
    GuiSetOnEvent($GUI_EVENT_CLOSE, "_ClipPut")
    Global $hInputB = GUICtrlCreateInput("", 10, 10, 180, 20)
    GUICtrlSetFont($hInputB, 8, 400, 0, "Lucida Console")
    Global $hButtonF = GUICtrlCreateButton("Zwischenablage", 10, 35, 90, 20)
    GuiCtrlSetOnEvent(-1, "_ClipGet")
    Global $hButtonG = GUICtrlCreateButton("OK", 100, 35, 90, 20)
    GuiCtrlSetOnEvent(-1, "_ClipPut")
    GUISetState(@SW_SHOW, $hGuiB)
    EndSwitch
    EndFunc

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

    Func _ClipGet()
    GUICtrlSetData($hInputB, ClipGet())
    EndFunc

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

    Func _ClipPut()
    GUICtrlSetData($hInputA, GUICtrlRead($hInputB),1)
    GUIDelete($hGuiB)
    EndFunc

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

    Func Terminate()
    Exit
    EndFunc

    [/autoit]
    • Offizieller Beitrag

    Hähä ChaosKeks,hast du auch Langeweile? ;)

  • Ne hab nur kein Bock auf mein aktuelles Projekt :D Hmm sind euch die Accelerators so wichtig?...
    Die wollen nich so ganz mitm EventMode :P

    • Offizieller Beitrag

    Hm, hab die Accelerators vorher noch nie benutzt, bin vorhin beim nachlesen in der Hilfedatei darüber gestolpert. :D Und da war der Rechner mein 1. Versuchsobjekt 8)

    Edit habe das ganze nochmal aufbauend auf ChaosKeks Code verkürzt:

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <Array.au3>
    Dim $hGuiA = (GUICreate("SCalc", 120, 160, -1, -1, $WS_CAPTION + $WS_POPUP + $WS_SYSMENU, $WS_EX_TOPMOST))
    GUISetState(@SW_SHOW, $hGuiA)
    Dim $AccelKeys[32][2]

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

    Dim $iMenu = (StringSplit("&Datei|&Bearbeiten", "|"))
    Dim $hMenu[UBound($iMenu)]
    For $i = 1 To (UBound($iMenu) - 1)
    $hMenu[$i] = (GUICtrlCreateMenu($iMenu[$i]))
    Next

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

    Dim $iMenuItem = (StringSplit("Speichern|Beenden|Löschen|Einfügen", "|"))
    Dim $hMenuItem[UBound($iMenuItem)]
    For $i = 1 To (UBound($iMenuItem) - 1)
    Switch $iMenuItem[$i]
    Case "Einfügen"
    $hMenuItem[$i] = (GUICtrlCreateMenuItem($iMenuItem[$i], $hMenu[2], $i - 1))
    Case "Löschen"
    $hMenuItem[$i] = (GUICtrlCreateMenuItem($iMenuItem[$i], $hMenu[2], $i - 1))
    Case Else
    $hMenuItem[$i] = (GUICtrlCreateMenuItem($iMenuItem[$i], $hMenu[1], $i - 1))
    EndSwitch
    Next
    Dim $iButtonsA = StringSplit("1|2|3|/|-|4|5|6|*|+", "|")
    Dim $hButtonsA[UBound($iButtonsA)]
    For $i = 1 To UBound($iButtonsA) - 1
    $hButtonsA[$i] = GUICtrlCreateButton($iButtonsA[$i], Mod($i, 6) * 20 + 10 - ($i < 6) * 20, Int($i / 6) * 20 + 50, 20, 20)
    $AccelKeys[$i - 1][0] = $iButtonsA[$i]
    $AccelKeys[$i - 1][1] = $hButtonsA[$i]
    Next

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

    Dim $iButtonsB = StringSplit("7|8|9|0|.", "|")
    Dim $hButtonsB[UBound($iButtonsB)]
    For $i = 1 To UBound($iButtonsB) - 1
    $hButtonsB[$i] = GUICtrlCreateButton($iButtonsB[$i], Mod($i, 4) * 20 + 10 - ($i < 4) * 20 + ($i = 5) * 20, Int($i / 4) * 20 + 90, 20 + ($i = 4) * 20, 20)
    $AccelKeys[$i + 9][0] = $iButtonsB[$i]
    $AccelKeys[$i + 9][1] = $hButtonsB[$i]
    Next
    Global $hButtonsC = GUICtrlCreateButton("=", 70, 90, 40, 40, $BS_DEFPUSHBUTTON)

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

    $AccelKeys[9][0] = "{+}"; Das Plus muß in die Plammern sonst wird es als Shift interpretiert
    $AccelKeys[15][0] = "="
    $AccelKeys[15][1] = $hButtonsC
    $AccelKeys[16][0] = "{NUMPADADD}"
    $AccelKeys[16][1] = $AccelKeys[9][1]
    $AccelKeys[17][0] = "{NUMPADSUB}"
    $AccelKeys[17][1] = $AccelKeys[4][1]
    $AccelKeys[18][0] = "{NUMPADDIV}"
    $AccelKeys[18][1] = $AccelKeys[3][1]
    $AccelKeys[19][0] = "{NUMPADMULT}"
    $AccelKeys[19][1] = $AccelKeys[8][1]
    $AccelKeys[20][0] = "{NUMPAD0}"
    $AccelKeys[20][1] = $AccelKeys[13][1]
    $AccelKeys[21][0] = "{NUMPAD1}"
    $AccelKeys[21][1] = $AccelKeys[0][1]
    $AccelKeys[22][0] = "{NUMPAD2}"
    $AccelKeys[22][1] = $AccelKeys[1][1]
    $AccelKeys[23][0] = "{NUMPAD3}"
    $AccelKeys[23][1] = $AccelKeys[2][1]
    $AccelKeys[24][0] = "{NUMPAD4}"
    $AccelKeys[24][1] = $AccelKeys[5][1]
    $AccelKeys[25][0] = "{NUMPAD5}"
    $AccelKeys[25][1] = $AccelKeys[6][1]
    $AccelKeys[26][0] = "{NUMPAD6}"
    $AccelKeys[26][1] = $AccelKeys[7][1]
    $AccelKeys[27][0] = "{NUMPAD7}"
    $AccelKeys[27][1] = $AccelKeys[10][1]
    $AccelKeys[28][0] = "{NUMPAD8}"
    $AccelKeys[28][1] = $AccelKeys[11][1]
    $AccelKeys[29][0] = "{NUMPAD9}"
    $AccelKeys[29][1] = $AccelKeys[12][1]
    $AccelKeys[30][0] = "{NUMPADDOT}"
    $AccelKeys[30][1] = $AccelKeys[14][1]
    $AccelKeys[31][0] = ","
    $AccelKeys[31][1] = $AccelKeys[14][1]
    GUISetAccelerators($AccelKeys)

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

    Dim $hInputA = (GUICtrlCreateInput("", 10, 10, 100, 30, $ES_AUTOHSCROLL + $ES_READONLY + $ES_RIGHT))
    GUICtrlSetFont($hInputA, 8, 400, 0, "Lucida Console")
    Dim $hGuiB
    Dim $hInputB
    Dim $hButtonF
    Dim $hButtonG

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

    While True
    $msg = GUIGetMsg()
    Switch $msg
    Case $hMenuItem[1]
    Dim $File = GUICtrlRead($hInputA)
    Dim $iSaveDialog = FileSaveDialog("Speichern", @DesktopDir, "Textdateien (*.txt)")
    FileWrite($iSaveDialog & ".txt", $File)
    Case $hMenuItem[2]
    Exit
    Case $hMenuItem[3]
    GUICtrlSetData($hInputA, "")
    Case $hMenuItem[4]
    Dim $hGuiB = (GUICreate("Einfügen", 200, 60, -1, -1, $WS_CAPTION + $WS_POPUP + $WS_SYSMENU, $WS_EX_TOPMOST))
    GUISetState(@SW_SHOW, $hGuiB)
    Dim $hInputB = (GUICtrlCreateInput("", 10, 10, 180, 20))
    GUICtrlSetFont($hInputB, 8, 400, 0, "Lucida Console")
    Dim $hButtonF = (GUICtrlCreateButton("Zwischenablage", 10, 35, 90, 20))
    Dim $hButtonG = (GUICtrlCreateButton("OK", 100, 35, 90, 20))
    Case $hButtonsA[1] To $hButtonsB[5]
    GUICtrlSetData($hInputA, GUICtrlRead($msg), 1)
    Case $hButtonsC
    If GUICtrlRead($hInputA) <> "" Then
    Dim $Result = (GUICtrlRead($hInputA))
    GUICtrlSetData($hInputA, Execute($Result))
    EndIf
    Case $hButtonF
    GUICtrlSetData($hInputB, ClipGet())
    Case $hButtonG
    GUICtrlSetData($hInputA, (GUICtrlRead($hInputA) & GUICtrlRead($hInputB)))
    GUIDelete($hGuiB)
    GUISetState(@SW_ENABLE, $hGuiA)
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

    [/autoit]
  • Kleiner Bug: Wenn man beim Einfügen Fenster schließen klickt, beendet sich das Programm.
    Und nochwas: Es wäre gut, wenn man nur Zahlen und Mathematische Zeichen einfügen könnte. ;)

    Zitat

    [Heute, 11:39] Raupi: Soll ich es dir machen?
    [Heute, 11:47] BugFix: "Soll ich es dir machen? " - also Raupi !! bitte nicht so öffentlich :rofl:

    Zitat

    [Heute, 11:51] BugFix: und ich werde es mir jetzt machen - das Mittagessen :P

    AMsg UDF v1.00.00 IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII 100%
    OwnStyle UDF Version 1.10.00 IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII 100%

  • Hmm also man darf jetz zwar keine Buchstaben in einfügen, aber auch keine Rechenzeichen mehr :D naja der Rest sollte behoben sein..

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <Array.au3>
    Dim $hGuiA = GUICreate("SCalc", 120, 160, -1, -1, $WS_CAPTION + $WS_POPUP + $WS_SYSMENU, $WS_EX_TOPMOST)
    GUISetState(@SW_SHOW, $hGuiA)
    Dim $AccelKeys[32][2]

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

    Dim $hMenu[3]
    $hMenu[1] = GUICtrlCreateMenu("&Datei")
    $hMenu[2] = GUICtrlCreateMenu("&Bearbeiten")

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

    Dim $hMenuString = StringSplit("Speichern|Beenden|Löschen|Einfügen", "|")
    Dim $hMenuItem[UBound($hMenuString)]
    For $i = 1 To UBound($hMenuString) - 1
    $hMenuItem[$i] = GUICtrlCreateMenuItem($hMenuString[$i], $hMenu[Int($i/3)+1], $i - 1)
    Next

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

    Dim $iButtonsA = StringSplit("1|2|3|/|-|4|5|6|*|+", "|")
    Dim $hButtonsA[UBound($iButtonsA)]
    For $i = 1 To UBound($iButtonsA) - 1
    $hButtonsA[$i] = GUICtrlCreateButton($iButtonsA[$i], Mod($i, 6) * 20 + 10 - ($i < 6) * 20, Int($i / 6) * 20 + 50, 20, 20)
    $AccelKeys[$i - 1][0] = $iButtonsA[$i]
    $AccelKeys[$i - 1][1] = $hButtonsA[$i]
    Next

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

    Dim $iButtonsB = StringSplit("7|8|9|0|.", "|")
    Dim $hButtonsB[UBound($iButtonsB)]
    For $i = 1 To UBound($iButtonsB) - 1
    $hButtonsB[$i] = GUICtrlCreateButton($iButtonsB[$i], Mod($i, 4) * 20 + 10 - ($i < 4) * 20 + ($i = 5) * 20, Int($i / 4) * 20 + 90, 20 + ($i = 4) * 20, 20)
    $AccelKeys[$i + 9][0] = $iButtonsB[$i]
    $AccelKeys[$i + 9][1] = $hButtonsB[$i]
    Next
    Global $hButtonsC = GUICtrlCreateButton("=", 70, 90, 40, 40, $BS_DEFPUSHBUTTON)

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

    $AccelKeys[9][0] = "{+}"; Das Plus muß in die Plammern sonst wird es als Shift interpretiert
    $AccelKeys[15][0] = "="
    $AccelKeys[15][1] = $hButtonsC

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

    $AccelString = StringSplit("{NUMPADADD}|{NUMPADSUB}|{NUMPADDIV}|{NUMPADMULT}|{NUMPAD0}|{NUMPAD1}|{NUMPAD2}|{NUMPAD3}|" _
    & "{NUMPAD4}|{NUMPAD5}|{NUMPAD6}|{NUMPAD7}|{NUMPAD8}|{NUMPAD9}|{NUMPADDOT}|,|9|4|3|8|13|0|1|2|5|6|7|10|11|12|14|14", "|")

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

    For $i = 1 To 16
    $AccelKeys[$i+15][0] = $AccelString[$i]
    $AccelKeys[$i+15][1] = $AccelKeys[$i+15][1]
    Next
    GUISetAccelerators($AccelKeys)

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

    Dim $hInputA = GUICtrlCreateInput("", 10, 10, 100, 30, $ES_AUTOHSCROLL +$ES_RIGHT+$ES_READONLY)
    GuiCtrlSetBkColor(-1, 0xFFFFFF)
    GUICtrlSetFont($hInputA, 8, 400, 0, "Lucida Console")
    Dim $hGuiB
    Dim $hInputB
    Dim $hButtonF
    Dim $hButtonG

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

    While True
    $msg = GUIGetMsg()
    Switch $msg
    Case $hMenuItem[1]
    Dim $File = GUICtrlRead($hInputA)
    Dim $iSaveDialog = FileSaveDialog("Speichern", @DesktopDir, "Textdateien (*.txt)")
    FileWrite($iSaveDialog & ".txt", $File)
    Case $hMenuItem[2]
    Exit
    Case $hMenuItem[3]
    GUICtrlSetData($hInputA, "")
    Case $hMenuItem[4]
    Dim $hGuiB = GUICreate("Einfügen", 200, 60, -1, -1, $WS_CAPTION + $WS_POPUP + $WS_SYSMENU, $WS_EX_TOPMOST)
    GUISetState(@SW_SHOW, $hGuiB)
    Dim $hInputB = GUICtrlCreateInput("", 10, 10, 180, 20,$ES_NUMBER)
    GUICtrlSetFont($hInputB, 8, 400, 0, "Lucida Console")
    Dim $hButtonF = GUICtrlCreateButton("Zwischenablage", 10, 35, 90, 20)
    Dim $hButtonG = GUICtrlCreateButton("OK", 100, 35, 90, 20)
    Case $hButtonsA[1] To $hButtonsB[5]
    GUICtrlSetData($hInputA, GUICtrlRead($msg), 1)
    Case $hButtonsC
    If GUICtrlRead($hInputA) <> "" Then
    Dim $Result = GUICtrlRead($hInputA)
    GUICtrlSetData($hInputA, Execute($Result))
    EndIf
    Case $hButtonF
    If StringRegExp(ClipGet(), "\D")=0 Then GUICtrlSetData($hInputB, ClipGet())
    Case $hButtonG
    GUICtrlSetData($hInputA, GUICtrlRead($hInputB),1)
    GUIDelete($hGuiB)
    GUISetState(@SW_ENABLE, $hGuiA)
    Case $GUI_EVENT_CLOSE
    If WinActive("Einfügen","") Then
    GuiDelete($hGuiB)
    Else
    Exit
    EndIf
    EndSwitch
    WEnd

    [/autoit]

    EDIT: Und nochmal nen Tick gekürzt ^^

    2 Mal editiert, zuletzt von ChaosKeks (17. Mai 2009 um 15:50)

  • + Code optimiert & gekürzt
    + C, ) und ( Button
    + Bugfix: Bug bei Einfügen entfernt
    + About

    To do:
    Nur Zahlen und Rechenzeichen einfügen.
    Ergebnis in eigene Zeile
    Bugfix: Wenn Zahl zlange keine neue Zeile
    Erweiterte-Leiste (Menü-Combo) mit Wurzel, ^,....

    Raupi mach ma wieder die Tastenzuweisung :D
    @ChaosKeks vllt ist "nur Zahlen und Rechenzeichen einfügen" mit StringFormat besser zu lösen?

    Spoiler anzeigen
    [autoit]

    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <EditConstants.au3>
    #include <ButtonConstants.au3>
    Dim $hGuiI = GUICreate("SCalc", 140, 160, -1, -1, $WS_CAPTION+$WS_POPUP+$WS_SYSMENU, $WS_EX_TOPMOST)

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

    Dim $iMenu = StringSplit("&Datei|&Bearbeiten|&?", "|")
    Dim $hMenu[UBound($iMenu)]
    For $i = 1 To UBound($iMenu) - 1
    $hMenu[$i] = GUICtrlCreateMenu($iMenu[$i])
    Next

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

    Dim $iMenuItem = StringSplit("Speichern|Beenden|Löschen|Kopieren|Einfügen|About", "|")
    Dim $hMenuItem[UBound($iMenuItem)]
    For $i = 1 To UBound($iMenuItem) - 1
    $hMenuItem[$i] = GUICtrlCreateMenuItem($iMenuItem[$i], $hMenu[Int($i/3)+1], $i - 1)
    Next

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

    Dim $iButtonI = StringSplit("1|2|3|4|5|6|7|8|9|0|.", "|")
    Dim $hButtonI[UBound($iButtonI)]
    For $i = 1 To UBound($iButtonI) - 1
    $hButtonI[$i] = GUICtrlCreateButton($iButtonI[$i], Mod($i,3)*20-10+(Mod($i,3)=0)*60+($i=11)*20, Int($i/3)*20+50-(Mod($i,3)=0)*20, 20+($i=10)*20, 20)
    Next

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

    Dim $iButtonII = StringSplit("/|*|(|-|+|)|=|C", "|")
    Dim $hButtonII[UBound($iButtonII)]
    For $i = 1 To UBound($iButtonII) - 1
    $hButtonII[$i] = GUICtrlCreateButton($iButtonII[$i], Mod($i,3)*20-10+(Mod($i,3)=0)*60+($i=11)*20+60+($i=8)*20, Int($i/3)*20+50-(Mod($i,3)=0)*20, 20+($i=7)*20, 20+($i>=7)*20)
    Next

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

    Dim $hEditI = GUICtrlCreateEdit("", 10, 10, 120, 30, $ES_AUTOHSCROLL+$ES_AUTOVSCROLL+$ES_READONLY+$ES_RIGHT)
    GUICtrlSetBkColor($hEditI, 0xFFFFFF)
    GUICtrlSetFont($hEditI, 9.5, 400, 0, "Lucida Console")
    Dim $hButtonIII[2]
    Dim $hButtonIV
    GUISetState(@SW_SHOW, $hGuiI)

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

    While True
    $Msg = GUIGetMsg()
    Switch $Msg
    Case $hMenuItem[1]
    FileWrite(FileSaveDialog("Speichern", @DesktopDir, "Textdateien (*.txt)") & ".txt", GUICtrlRead($hEditI))
    Case $hMenuItem[2]
    Exit
    Case $hMenuItem[3]
    If GUICtrlRead($hEditI) <> "" Then
    GUICtrlSetData($hEditI, "")
    EndIf
    Case $hMenuItem[4]
    If GUICtrlRead($hEditI) <> "" Then
    ClipPut(GUICtrlRead($hEditI))
    EndIf
    Case $hMenuItem[5]
    Dim $hGuiII = GUICreate("Einfügen", 200, 60, -1, -1, $WS_CAPTION+$WS_POPUP, $WS_EX_TOPMOST)
    Dim $hInputI = GUICtrlCreateInput("", 10, 10, 180, 20)
    GUICtrlSetFont($hInputI, 9, 400, 0, "Lucida Console")
    GuiCtrlSetBkColor($hInputI, 0xFFFFFF)
    $hButtonIII[0] = GUICtrlCreateButton("Zwischenablage", 10, 35, 90, 20)
    $hButtonIII[1] = GUICtrlCreateButton("OK", 100, 35, 90, 20, $BS_DEFPUSHBUTTON)
    GUISetState(@SW_SHOW, $hGuiII)
    Case $hMenuItem[6]
    Dim $hGuiIII = GUICreate("About", 200, 110, -1, -1, $WS_CAPTION+$WS_POPUP, $WS_EX_TOPMOST)
    Dim $hLabelI[3] = [GUICtrlCreateLabel("SlimCalc", 10, 10, 70, 20), GUICtrlCreateLabel("by freakisch", 80, 18, 60, 20), GUICtrlCreateLabel("Version: 0.1.3" & @CRLF & "Thanks to: ChaosKeks, Raupi", 10, 40, 140, 30)]
    GUICtrlSetFont($hLabelI[0], 14, 400, 0, "Impact")
    GUICtrlSetFont($hLabelI[1], 8, 400, 2)
    GUICtrlSetFont($hLabelI[2], 8, 400, 2)
    $hButtonIV = GUICtrlCreateButton("OK", 100, 85, 95, 20, $BS_DEFPUSHBUTTON)
    GUISetState(@SW_SHOW, $hGuiIII)
    Case $hButtonI[1] To $hButtonI[11]
    GUICtrlSetData($hEditI, GUICtrlRead($hEditI) & GUICtrlRead($Msg))
    Case $hButtonII[1] To $hButtonII[6]
    GUICtrlSetData($hEditI, GUICtrlRead($hEditI) & GUICtrlRead($Msg))
    Case $hButtonII[7]
    If GUICtrlRead($hEditI) <> "" Then
    Dim $hLine = ControlCommand("", "", $hEditI, "GetLineCount")
    Dim $iLine = ControlCommand("", "", $hEditI, "GetLine", $hLine)
    GUICtrlSetData($hEditI, $iLine & @CRLF & Execute($iLine))
    EndIf
    Case $hButtonII[8]
    If GUICtrlRead($hEditI) <> "" Then
    GUICtrlSetData($hEditI, "")
    EndIf
    Case $hButtonIII[0]
    If WinExists("Einfügen") Then
    If ClipGet() <> "" Then
    GUICtrlSetData($hInputI, ClipGet())
    EndIf
    EndIf
    Case $hButtonIII[1]
    If WinExists("Einfügen") Then
    If GUICtrlRead($hInputI) <> "" Then
    GUICtrlSetData($hEditI, GUICtrlRead($hEditI) & GUICtrlRead($hInputI))
    GUIDelete($hGuiII)
    Else
    GUIDelete($hGuiII)
    EndIf
    EndIf
    Case $hButtonIV
    If WinExists("About") Then
    GUIDelete($hGuiIII)
    EndIf
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

    [/autoit]

    6 Mal editiert, zuletzt von freakisch (18. Mai 2009 um 20:15)

  • So hab grade nochmal zum Spaß dran rumgeschraubt.. Was ich gemacht habe:
    - Tastenzuweisungen (Dabei Backspace und Del differenziert)
    - Den Bug des Einfügen-Fensters gelöst
    - Es wird nun nicht mehr in eine zweite Zeile geschrieben,
    falls die erste voll ist
    - Neue Leiste erstellt (aber noch nix eingefügt)

    Und damit freakisch und andere noch Arbeit haben ^^ :
    Neue ToDo:
    - Menu-Eintrag: Erweiterte Leiste zeigen/verstecken
    - Die ganze Leiste mit erweiterten Funktionen versehen (siehe Math_Ex_UDF von Mathias G.)

    Spoiler anzeigen
    [autoit]

    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <EditConstants.au3>
    #include <ButtonConstants.au3>
    #include <Array.au3>
    Dim $AccelKeys[36][2]

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

    Dim $hGuiI = GUICreate("SCalc", 140, 160, -1, -1, $WS_CAPTION+$WS_POPUP+$WS_SYSMENU, $WS_EX_TOPMOST)

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

    Dim $iMenu = StringSplit("&Datei|&Bearbeiten|&?", "|")
    Dim $hMenu[UBound($iMenu)]
    For $i = 1 To UBound($iMenu) - 1
    $hMenu[$i] = GUICtrlCreateMenu($iMenu[$i])
    Next

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

    Dim $iMenuItem = StringSplit("Speichern|Beenden|Löschen|Kopieren|Einfügen|About", "|")
    Dim $hMenuItem[UBound($iMenuItem)]
    For $i = 1 To UBound($iMenuItem) - 1
    $hMenuItem[$i] = GUICtrlCreateMenuItem($iMenuItem[$i], $hMenu[Int($i/3)+1], $i - 1)
    Next

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

    Dim $iButtonI = StringSplit("1|2|3|4|5|6|7|8|9|0|.", "|")
    Dim $hButtonI[UBound($iButtonI)+1]
    For $i = 1 To UBound($iButtonI) - 1
    $hButtonI[$i] = GUICtrlCreateButton($iButtonI[$i], Mod($i,3)*20-10+(Mod($i,3)=0)*60+($i=11)*20, Int($i/3)*20+50-(Mod($i,3)=0)*20, 20+($i=10)*20, 20)
    $AccelKeys[$i - 1][0] = $iButtonI[$i]
    $AccelKeys[$i - 1][1] = $hButtonI[$i]
    Next

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

    Dim $iButtonII = StringSplit("/|*|(|-|+|)|=|C", "|")
    Dim $hButtonII[UBound($iButtonII)]
    For $i = 1 To UBound($iButtonII) - 1
    $hButtonII[$i] = GUICtrlCreateButton($iButtonII[$i], Mod($i,3)*20-10+(Mod($i,3)=0)*60+($i=8)*20+60, Int($i/3)*20+50-(Mod($i,3)=0)*20, 20+($i=7)*20, 20+($i>=7)*20)
    $AccelKeys[$i + 10][0] = $iButtonII[$i]
    $AccelKeys[$i + 10][1] = $hButtonII[$i]
    Next

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

    $hButtonI[12] = GUICtrlCreateButton("", 500,500,1,1)
    $AccelKeys[15][0] = "{+}"
    $AccelKeys[17][0] = "{ENTER}"
    $AccelKeys[18][0] = "{DEL}"
    $AccelKeys[18][1] = $hButtonII[8]
    $AccelKeys[19][0] = "{BACKSPACE}"
    $AccelKeys[19][1] = $hButtonI[12]
    $AccelKeys[20][0] = ","
    $AccelKeys[20][1] = $hButtonI[11]

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

    $AccelStringI = StringSplit("{NUMPAD1}|{NUMPAD2}|{NUMPAD3}|{NUMPAD4}|{NUMPAD5}|" _
    & "{NUMPAD6}|{NUMPAD7}|{NUMPAD8}|{NUMPAD9}|{NUMPAD0}|{NUMPADDOT}", "|")
    For $i = 1 To 11
    $AccelKeys[$i+20][0] = $AccelStringI[$i]
    $AccelKeys[$i+20][1] = $hButtonI[$i]
    Next

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

    $AccelStringII = StringSplit("{NUMPADDIV}|{NUMPADMULT}|{NUMPADSUB}|{NUMPADADD}","|")
    For $i = 1 To 4
    $AccelKeys[$i+31][0] = $AccelStringII[$i]
    $AccelKeys[$i+31][1] = $hButtonII[$i+($i>2)]
    Next
    GUISetAccelerators($AccelKeys)

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

    Dim $hEditI = GUICtrlCreateEdit("", 10, 10, 120, 30, $ES_AUTOHSCROLL+$ES_AUTOVSCROLL+$ES_READONLY+$ES_RIGHT)
    GUICtrlSetBkColor($hEditI, 0xFFFFFF)
    GUICtrlSetFont($hEditI, 9.5, 400, 0, "Lucida Console")
    Dim $hButtonIII[2]
    Dim $hButtonIV

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

    $hGuiII = GUICreate("", 14, 160, 155, -22, -1,BitOR($WS_EX_APPWINDOW, $WS_EX_TOOLWINDOW, $WS_EX_WINDOWEDGE,$WS_EX_MDICHILD),$hGuiI)
    $hButtonV = GuiCtrlCreateButton(">", 0,65)
    GUISetState(@SW_SHOW, $hGuiII)
    GUISetState(@SW_SHOW, $hGuiI)

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

    While True
    $Msg = GUIGetMsg()
    Switch $Msg
    Case $hMenuItem[1]
    FileWrite(FileSaveDialog("Speichern", @DesktopDir, "Textdateien (*.txt)") & ".txt", GUICtrlRead($hEditI))
    Case $hMenuItem[2]
    Exit
    Case $hMenuItem[3]
    If GUICtrlRead($hEditI) <> "" Then
    GUICtrlSetData($hEditI, "")
    EndIf
    Case $hMenuItem[4]
    If GUICtrlRead($hEditI) <> "" Then
    ClipPut(GUICtrlRead($hEditI))
    EndIf
    Case $hMenuItem[5]
    Dim $hGuiII = GUICreate("Einfügen", 200, 60, -1, -1, $WS_CAPTION+$WS_POPUP, $WS_EX_TOPMOST)
    Dim $hInputI = GUICtrlCreateInput("", 10, 10, 180, 20)
    GUICtrlSetFont($hInputI, 9, 400, 0, "Lucida Console")
    GuiCtrlSetBkColor($hInputI, 0xFFFFFF)
    $hButtonIII[0] = GUICtrlCreateButton("Zwischenablage", 10, 35, 90, 20)
    $hButtonIII[1] = GUICtrlCreateButton("OK", 100, 35, 90, 20, $BS_DEFPUSHBUTTON)
    GUISetState(@SW_SHOW, $hGuiII)
    Case $hMenuItem[6]
    Dim $hGuiIII = GUICreate("About", 200, 110, -1, -1, $WS_CAPTION+$WS_POPUP, $WS_EX_TOPMOST)
    Dim $hLabelI[3] = [GUICtrlCreateLabel("SlimCalc", 10, 10, 70, 20), GUICtrlCreateLabel("by freakisch", 80, 18, 60, 20), GUICtrlCreateLabel("Version: 0.1.3" & @CRLF & "Thanks to: ChaosKeks, Raupi", 10, 40, 140, 30)]
    GUICtrlSetFont($hLabelI[0], 14, 400, 0, "Impact")
    GUICtrlSetFont($hLabelI[1], 8, 400, 2)
    GUICtrlSetFont($hLabelI[2], 8, 400, 2)
    $hButtonIV = GUICtrlCreateButton("OK", 100, 85, 95, 20, $BS_DEFPUSHBUTTON)
    GUISetState(@SW_SHOW, $hGuiIII)
    Case $hButtonI[1] To $hButtonI[11]
    If StringLen(ControlCommand("", "", $hEditI, "GetLine", 1)) < 16 Then
    GUICtrlSetData($hEditI, GUICtrlRead($Msg),1)
    Consolewrite(StringLen(ControlCommand("", "", $hEditI, "GetLine", 1)))
    EndIf
    Case $hButtonI[12]
    $iLine = ControlCommand("", "", $hEditI, "GetLine", 1)
    GuiCtrlSetData($hEditI, StringTrimRight($iLine,1))
    Case $hButtonII[1] To $hButtonII[6]
    GUICtrlSetData($hEditI, GUICtrlRead($Msg),1)
    Case $hButtonII[7]
    If GUICtrlRead($hEditI) <> "" Then
    Dim $hLine = ControlCommand("", "", $hEditI, "GetLineCount")
    Dim $iLine = ControlCommand("", "", $hEditI, "GetLine", $hLine)
    GUICtrlSetData($hEditI, $iLine & @CRLF & Execute($iLine))
    EndIf
    Case $hButtonII[8]
    GUICtrlSetData($hEditI, "")
    Case $hButtonIII[0]
    If WinExists("Einfügen") Then
    If ClipGet() <> "" And StringRegExp(ClipGet(),"^((\d+)|(\+|-|/|\*))") Then
    GUICtrlSetData($hInputI, ClipGet())
    EndIf
    EndIf
    Case $hButtonIII[1]
    If WinExists("Einfügen") Then
    If GUICtrlRead($hInputI) <> "" AND StringRegExp(GUICtrlRead($hInputI),"^((\d+)|(\+|-|/|\*))") Then
    GUICtrlSetData($hEditI, GUICtrlRead($hInputI),1)
    GUIDelete($hGuiII)
    Else
    GUIDelete($hGuiII)
    EndIf
    EndIf
    Case $hButtonIV
    If WinExists("About") Then
    GUIDelete($hGuiIII)
    EndIf
    Case $hButtonV
    If GuiCtrlRead($hButtonV) = ">" Then
    $Pos = WinGetPos($hGuiII)
    For $i = 10 To 20
    WinMove($hGuiII, "",$Pos[0],$Pos[1],$i*7)
    sleep(10)
    Next
    GuiCtrlSetData($hButtonV,"<")
    Else
    $Pos = WinGetPos($hGuiII)
    For $i = 10 To 20
    WinMove($hGuiII, "",$Pos[0],$Pos[1],$Pos[3]-$i*8)
    sleep(10)
    Next
    WinMove($hGuiII, "",$Pos[0],$Pos[1],20)
    GuiCtrlSetData($hButtonV,">")
    EndIf
    Case $GUI_EVENT_CLOSE
    If Winactive("SCalc","") Then
    Exit
    Else
    GuiDelete($hGuiII)
    EndIf
    EndSwitch
    WEnd

    [/autoit]
  • Release 1.1:
    Changelog:
    Neues Gui-Konzept
    erweiterte Tastatur
    Verlauf
    Öffnen-Funktion
    Code optimiert

    Release 1.11:
    Bugfix "erweiterte Tastatur"

    2 Mal editiert, zuletzt von freakisch (27. Mai 2009 um 23:41)