コード例 #1
0
ファイル: Form1.cs プロジェクト: Alex-Kung/Kalculator
        private void Check_LastSymb(object sender, KeyPressEventArgs e)
        {
            char number = e.KeyChar;

            e.Handled = true;
            if (RPN.IsOperand(number) || RPN.IsSpecSymb(number) || Char.IsDigit(number) || number == 8)
            {
                if (textbox.Text != "")
                {
                    char[] txt = textbox.Text.ToCharArray();
                    if (!RPN.IsOperand(txt[txt.Length - 1]))
                    {
                        e.Handled = false;
                    }
                    if (RPN.IsSpecSymb(number) || Char.IsDigit(number))
                    {
                        e.Handled = false;
                    }
                    if (number == 8)
                    {
                        e.Handled = false;
                    }
                }
                else
                {
                    if (Char.IsDigit(number))
                    {
                        e.Handled = false;
                    }
                }
            }
        }
コード例 #2
0
ファイル: Form1.cs プロジェクト: Alex-Kung/Kalculator
        private bool Check_LastSymb(object sender)
        {
            char ch = char.Parse((sender as Button).Tag.ToString());

            if (RPN.IsOperand(ch) || RPN.IsSpecSymb(ch) || Char.IsDigit(ch))
            {
                if (textbox.Text != "")
                {
                    char[] txt = textbox.Text.ToCharArray();
                    if (!RPN.IsOperand(txt[txt.Length - 1]))
                    {
                        return(true);
                    }
                    if (RPN.IsSpecSymb(ch) || Char.IsDigit(ch))
                    {
                        return(true);
                    }
                }
                else
                {
                    if (Char.IsDigit(ch))
                    {
                        return(true);
                    }
                }
            }
            return(false);
        }
コード例 #3
0
ファイル: Form1.cs プロジェクト: Alex-Kung/Kalculator
 private void drob_Click(object sender, EventArgs e)
 {
     if (!CheckLock())
     {
         if (textbox.Text != "")
         {
             bool   check   = true;
             string newText = "";
             char[] src     = textbox.Text.ToCharArray();
             int    pos     = src.Length - 1;
             int    i       = -1;
             for (; pos >= 0; pos--)
             {
                 if (check)
                 {
                     if (!Char.IsDigit(src[pos]) && !RPN.IsSpecSymb(src[pos]))
                     {
                         check = false;
                         i     = pos; break;
                     }
                     if (pos == 0)
                     {
                         check = false;
                         i     = -1;
                     }
                 }
             }
             for (int j = 0; j < src.Length; j++)
             {
                 if (j == 0 && i == -1)
                 {
                     newText += "1/" + src[j];
                 }
                 else
                 {
                     if (j == i)
                     {
                         newText += "1/" + src[j];
                     }
                     else
                     {
                         newText += src[j];
                     }
                 }
             }
             textbox.Text = newText;
         }
         else
         {
             textbox.Text = "1/";
         }
     }
 }