Changeset 1309

Show
Ignore:
Timestamp:
12/22/08 14:43:23 (4 years ago)
Author:
mösi
Message:

Der Taschenrechner unterstützt nun auch Hex-Zahlen (die mit "0x" eingeleitet werden) sowie die binäroperationen | bzw. & für bitweises ODER bzw. UND.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • windows/neo-vars/src/source/tools.ahk

    r1264 r1309  
    299299  PressHookProc := "Calc" 
    300300  CalcEcho := 0 
    301   CalcVar1 := "0" 
    302   CalcVar2 := "0" 
     301  CalcVar1 := "" 
     302  CalcVar2 := "" 
    303303  CalcOp := "" 
    304304  CalcPhase := 0 
     305  CalcHexOut := 0 
    305306} 
    306307 
     
    310311  PressHookProc := "Calc" 
    311312  CalcEcho := 1 
    312   CalcVar1 := "0" 
    313   CalcVar2 := "0" 
     313  CalcVar1 := "" 
     314  CalcVar2 := "" 
    314315  CalcOp := "" 
    315316  CalcPhase := 0 
     317  CalcHexOut := 0 
    316318} 
    317319 
     
    341343    else if ((Char == "U0039") or (Char == "SN__9")) 
    342344      CalcVar1 := CalcVar1 . "9" 
     345    else if ((Char == "U0039") or (Char == "SN__9")) 
     346      CalcVar1 := CalcVar1 . "9" 
     347    else if ((Char == "U0041") or (Char == "U0061")) 
     348      CalcVar1 := CalcVar1 . "A" 
     349    else if ((Char == "U0042") or (Char == "U0062")) 
     350      CalcVar1 := CalcVar1 . "B" 
     351    else if ((Char == "U0043") or (Char == "U0063")) 
     352      CalcVar1 := CalcVar1 . "C" 
     353    else if ((Char == "U0044") or (Char == "U0064")) 
     354      CalcVar1 := CalcVar1 . "D" 
     355    else if ((Char == "U0045") or (Char == "U0065")) 
     356      CalcVar1 := CalcVar1 . "E" 
     357    else if ((Char == "U0046") or (Char == "U0066")) 
     358      CalcVar1 := CalcVar1 . "F" 
    343359    else if ((Char == "U002E") or (Char == "U002C") or (Char=="SNDot")) 
    344360      CalcVar1 := CalcVar1 . "." 
    345     else if ((Char == "U002B") or (Char == "SNAdd")) { 
     361    else if ((Char == "U0078") or (Char == "U0058")) { 
     362      CalcVar1 := CalcVar1 . "x" 
     363      CalcHexOut := 1 
     364    } else if ((Char == "U002B") or (Char == "SNAdd")) { 
    346365      CalcOp := "+" 
    347366      CalcPhase := 1 
     
    354373    } else if ((Char == "U002F") or (Char == "SNDiv")) { 
    355374      CalcOp := "/" 
     375      CalcPhase := 1 
     376    } else if (Char == "U0026") { 
     377      CalcOp := "&" 
     378      CalcPhase := 1 
     379    } else if (Char == "U007C") { 
     380      CalcOp := "|" 
    356381      CalcPhase := 1 
    357382    } else 
     
    383408    else if ((Char == "U0039") or (Char == "SN__9")) 
    384409      CalcVar2 := CalcVar2 . "9" 
     410    else if ((Char == "U0041") or (Char == "U0061")) 
     411      CalcVar2 := CalcVar2 . "A" 
     412    else if ((Char == "U0042") or (Char == "U0062")) 
     413      CalcVar2 := CalcVar2 . "B" 
     414    else if ((Char == "U0043") or (Char == "U0063")) 
     415      CalcVar2 := CalcVar2 . "C" 
     416    else if ((Char == "U0044") or (Char == "U0064")) 
     417      CalcVar2 := CalcVar2 . "D" 
     418    else if ((Char == "U0045") or (Char == "U0065")) 
     419      CalcVar2 := CalcVar2 . "E" 
     420    else if ((Char == "U0046") or (Char == "U0066")) 
     421      CalcVar2 := CalcVar2 . "F" 
    385422    else if ((Char == "U002E") or (Char == "U002C") or (Char=="SNDot")) 
    386423      CalcVar2 := CalcVar2 . "." 
    387     else if ((Char == "U000D") or (Char == "SNEnt") or (Char=="U0020") or (Char=="U003D")) { 
     424    else if ((Char == "U0078") or (Char == "U0058")) { 
     425      CalcVar2 := CalcVar2 . "x" 
     426      CalcHexOut := 1 
     427    } else if ((Char == "U000D") or (Char == "SNEnt") or (Char=="U0020") or (Char=="U003D")) { 
    388428      if      (CalcOp == "+") 
    389429        CalcResult := CalcVar1 + CalcVar2 
     
    394434      else if (CalcOp == "/") 
    395435        CalcResult := CalcVar1 / CalcVar2 
     436      else if (CalcOp == "&") 
     437        CalcResult := CalcVar1 & CalcVar2 
     438      else if (CalcOp == "|") 
     439        CalcResult := CalcVar1 | CalcVar2 
    396440      else 
    397441        CalcResult := "Invalid" 
     442      if (CalcHexOut and (CalcResult != "")) { 
     443        SetFormat,Integer,h 
     444        CalcResult := CalcResult + 0 
     445        SetFormat,Integer,d 
     446      } 
    398447      tosend := EncodeUni(CalcResult) 
    399448      if (CalcEcho) {