الشبكة العربية لمطوري الألعاب

خبير  أحمد عبد الغني مشاركة 1

لدي برنامج لتحرير بعض البيانات عن طريق إجراء عمليات عليها، أو إضافة نسخ جديدة منها أو حذفها.
أريد إضافة ميزة undo/redo كالتي نجدها في كل البرامج. فكيف أقوم بذلك؟ ما هي الفكرة؟
 
أرجو أن أجد إجابات وإن كانت عامة نوعا ما
 
شكرا

اللهم انصر أهلنا في فلسطين وآجرنا أن نكون عوناً لهم

خبير  أحمد عزالدين مشاركة 2

السلام عليكم

اعتقد اخى انه يمكن تنفيذ الفكرة بالاعتماد على ال stack كطريقة لتخزين العمليات التى تريد تنفيذها ومن ثم في وقت لاحق حذفها

حيث بمبدأ عمل ال stack وهو FIFO يمكنك دائما عمل push او ادخال عملية جديدة تم اجراؤها حاليا وتضاف طبعا لبداية ال stack
واي عملية ثانية ستضاف فوقها وهكذا
وان قمت بعمل undo فكل ما ستنفذه سيكون عمل pop لاول عنصر من ال stack
وعند عمل redo تقوم بعمل push مرة اخرى وهكذا

اعتقد انك ستحتاج لكلاس لتخزن فيها اخر عملية او شئ من هذا القيبل
بصراحة كان لدي مثال يشرح الموضوع من زمان لكني لا اتذكره حاليا
عموما يمكننى ان انظر فيه بعد الامتحانات واعتذر حاليا لظروف الامتحانات

واتمنى ان تنجح الفكرة
والسلام عليكم

أحمد عزالدين
طالب دراسات عليا
جامعة كالجري