السلام عليكم
أقوم بعمل برنامج يشبه الوورد , وأستخدم في ذلك طبعا Richbox لكن الأمر الذي وقفت عنده هو أمر Undo فكيف أنفذه ؟
رجاء المساعدة بسرعة
السلام عليكم
أقوم بعمل برنامج يشبه الوورد , وأستخدم في ذلك طبعا Richbox لكن الأمر الذي وقفت عنده هو أمر Undo فكيف أنفذه ؟
رجاء المساعدة بسرعة
السلام عليكم..
كنت استخدم الدالة SendMessage عندما كنت أصمم برنامج NotePad وذلك لإرسال رسائل تحرير لصندوق النص TextBox مثل (Copy,Past,Cut,Delete,Undo) , والتي تجدها في قائمة Edit..
تصريح الدالة SendMessage هو :
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Long) As Long
وقيم ثوابت الرسائل والتي تستطيع الحصول عليها من برنامج API Viewer:
Const WM_CUT = &H300 Const WM_COPY = &H301 Const WM_PASTE = &H302 Const WM_UNDO = &H304
لاحظ أن الثابت WM_Delete لن تجده .. وقد بحثت عن هذا الثابت كثيرا في الماضي.. ثم أخذت الموضوع بصورة عكسية فوجدت أن القيمة بالهكس المفقودة ضمن القيم السابقة هي &H303.. فقمت بالبحث بصورة عكسية عن مقابل تلك القيمة في برنامج API Viewer .. فوجدت أنها تقابل الرسالة WM_Clear:
Const WM_CLEAR = &H303
كل ما عليك الآن هو إرسال الرسالة WM_UNDO إلي مقبض أداة RichTextBox هكذا :
SendMessage RichTextBox1.hwnd, WM_UNDO, 0, 0
مشكور أخي Pharaonic_Guy
تم تعديل هذه المشاركة بواسطة البريشي في 14 نوفمبر 2005 في 10:24
********************* ******************** *********************
(( أشــهد أن لا اله الا الله ..... وأشهد أن محمد رسول الله ))
********************* ******************** *********************
لا تقـل من أيـن أبدأ
طـاعـة الله الـبدايـة
***
لا تقـل أين طـريـقي
شــرع الله الهـدايـة
***
لا تـقـل أيـن نعـيمي
جـنـة الله كـفـايـــــة
***
لا تقـل في الغـد أبدأ
ربمـــا تأتـي النهـايـــة
**************** **************** ****************
الأخ الكريم Pharaonic_Guy
جزاك الله خيرا
لكن ألا تلاحظ انه عند تنفيذ هذا الأمر فإنه يعمل undo من أول خطوة قمت بها في داخل richbox ?!!
بمعنى لو انك كتبت خمسين سطرا داخل richbox ثم قمت بعمل undo فإنه سوف يلغي الخمسين سطرا دفعة واحدة !! وإذا ضغطت عليه مرة أخرى فإنه يرجعهم مرة أخرى !
وهذه الحالة ليست مثل undo المعروفة في الوورد التي تتعامل مع النص خطوة خطوة
أرجو ان تكون فهمتني
الأخ الكريم halwa
الكود undo غير متاح في الريتش بوكس
الأخ Pharaonic_Guy
جربت طريقتك مع التكست بوكس ولم تنفع فما الفرق ؟
وجزاك الله خيرا
والله يا محمد بحسب أنك خلصت الموضوع ده من زمان..
ابقي عود نفسك للبحث عن المعلومة.. وعندك مليون موقع لذلك..
المهم مرفق برنامجين بهم طريقة عمل Undo و Redo..من موقع pscode
إن شاء الله يفيدوك.. ولو فيه حاجة في الكود صعبة نبقي نتناقش فيها..
تم تعديل هذه المشاركة بواسطة Pharaonic_Guy في 25 نوفمبر 2005 في 01:13
أخي الكريم
Pharaonic_Guy
المثال فعلا جميل جدا
ومعلش أتعبتك معي
وجزاك الله خيرا
طريقتي ما نفعت انا لسه شاري نسخة6 من شهر ومكتوب ان نص الادوات الموجوده حديثه جداً
my new site click here
هذا الموضوع مغلق.