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
#NoTrayIcon
Opt("GuiResizeMode", 802)
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)
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)
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)
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 = * 40, Int($i / 3) * 20 + ($i = * 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)
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)
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)
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