// 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); } } }