Beispiel #1
0
    // gi prepozava kopcinjata za operaciite so memorijata-registerot
    // Tuka se izvrsuva klientot koj sto e del od Memento Shablonot implmentiran vo resnieto od zadacata, dodeka pak vo ostatokot od proektot
    // se koristi Command zaedno so Memento shablonot
    public void MemoryOpButtons(Object sender, EventArgs e)
    {
        Button clickedButton = (Button)sender;

        if (clickedButton.Text.ToString() == "MS")    ///ako kliknato kopceto za zacuvuvanje vo memorija se sozdava objekt od originatorot i se zacuvuva sostojbata.
        {
            DodadiVoLenta("Set in Memory ");
            DodadiVoLenta(txtDisplej.Text.Trim().ToString());
            try { rez        = Convert.ToDouble(txtDisplej.Text.Trim().ToString());
                  originator = new Originator(rez);
                  caretaker.saveState(originator);
                  txtDisplej.Text = "";
                  lblMemory.Text  = "M"; }
            catch (Exception ex) { DodadiVoLenta("Input Format Error..."); }
            //ja zacuvuva vrednosta od ekran
        }
        else
        if (clickedButton.Text.ToString() == "MC")       // se zadava 0 vrednost na orginatorot i se zacuvuva sostojbata
        {
            //stava 0 vo memorijata
            double nula = 0;
            originator = new Originator(nula);
            caretaker.saveState(originator);
            lblMemory.Text  = "";
            txtDisplej.Text = "0";
            old_result      = true;
            DodadiVoLenta(" Memory cleared,  Memory= " + nula.ToString());
        }
        else if (clickedButton.Text.ToString() == "MR")      // se cita od registerot, se restavrira vrednosta vo originatorot i se dodava na diplay
        {
            if (originator != null)
            {
                string t = Convert.ToString(caretaker.restoreState(originator));
                if (znak)
                {
                    txtDisplej.Text += t;
                }
                else
                {
                    txtDisplej.Text = t;
                }
                lblMemory.Text = "M";
                old_result     = true;
                DodadiVoLenta(" Memory Recall, vaulue= " + t);
            }
        }
        else if (clickedButton.Text.ToString() == "M+")      // se sobira vrednosta od ekran so vrednosta od registarot, prvo e vcituva,sobira pa zacuvuva.
        {                                                    // zacuvuvanjeto se pravi vrz originatorot,   se zacuvuvs vo memento objekt
            if (originator != null)
            {
                caretaker.restoreState(originator);

                try { rez = Convert.ToDouble(txtDisplej.Text.Trim().ToString());
                      originator.DodadiVrednostVoRegistarot(rez);
                      caretaker.saveState(originator);
                      caretaker.restoreState(originator);
                      txtDisplej.Text = Convert.ToString(originator.VrednostVoRegisterot());
                      old_result      = true;
                      lblMemory.Text  = "M";
                      DodadiVoLenta("Added to Memory , Memory= " + txtDisplej.Text); }
                catch (Exception ex) { DodadiVoLenta("Input Format Error..."); }
            }
        }
        else if (clickedButton.Text.ToString() == "M-")// se odzema vrednosta od registarot so vrednosta na ekranot, redoledot e slicen na sobiranjeto
        {
            if (originator != null)
            {
                caretaker.restoreState(originator);

                originator.OdzemiVrednostOdRegistarot(Convert.ToDouble(txtDisplej.Text.Trim().ToString()));
                caretaker.saveState(originator);
                caretaker.restoreState(originator);
                txtDisplej.Text = Convert.ToString(originator.VrednostVoRegisterot());
                old_result      = true;
                lblMemory.Text  = "M";
                DodadiVoLenta("Substracted from Memory , Memory= " + txtDisplej.Text);
            }
        }
    }