الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيفية عمل undo في Richbox ?

مغلق
بدأه Visual Studio في 13 نوفمبر 2005 · 8 رد · 732 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

أقوم بعمل برنامج يشبه الوورد , وأستخدم في ذلك طبعا Richbox لكن الأمر الذي وقفت عنده هو أمر Undo فكيف أنفذه ؟

رجاء المساعدة بسرعة

#2

السلام عليكم..

كنت استخدم الدالة 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
#3

مشكور أخي Pharaonic_Guy

تم تعديل هذه المشاركة بواسطة البريشي في 14 نوفمبر 2005 في 10:24

********************* ******************** *********************

(( أشــهد أن لا اله الا الله ..... وأشهد أن محمد رسول الله ))

********************* ******************** *********************

لا تقـل من أيـن أبدأ

طـاعـة الله الـبدايـة

***

لا تقـل أين طـريـقي

شــرع الله الهـدايـة

***

لا تـقـل أيـن نعـيمي

جـنـة الله كـفـايـــــة

***

لا تقـل في الغـد أبدأ

ربمـــا تأتـي النهـايـــة

**************** **************** ****************

#4

الأخ الكريم Pharaonic_Guy

جزاك الله خيرا

لكن ألا تلاحظ انه عند تنفيذ هذا الأمر فإنه يعمل undo من أول خطوة قمت بها في داخل richbox ?!!

بمعنى لو انك كتبت خمسين سطرا داخل richbox ثم قمت بعمل undo فإنه سوف يلغي الخمسين سطرا دفعة واحدة !! وإذا ضغطت عليه مرة أخرى فإنه يرجعهم مرة أخرى !

وهذه الحالة ليست مثل undo المعروفة في الوورد التي تتعامل مع النص خطوة خطوة

أرجو ان تكون فهمتني

#5

لو كان الذي تقولة كم أظن فأكتب

rich.undo
rich هو إسم الاداة B)  B)

my new site click here

#6

الأخ الكريم halwa

الكود undo غير متاح في الريتش بوكس

الأخ Pharaonic_Guy

جربت طريقتك مع التكست بوكس ولم تنفع فما الفرق ؟

وجزاك الله خيرا

#7

والله يا محمد بحسب أنك خلصت الموضوع ده من زمان..

ابقي عود نفسك للبحث عن المعلومة.. وعندك مليون موقع لذلك..

المهم مرفق برنامجين بهم طريقة عمل Undo و Redo..من موقع pscode

إن شاء الله يفيدوك.. ولو فيه حاجة في الكود صعبة نبقي نتناقش فيها..

UNDO-REDO.rar

تم تعديل هذه المشاركة بواسطة Pharaonic_Guy في 25 نوفمبر 2005 في 01:13

#9

طريقتي ما نفعت انا لسه شاري نسخة6 من شهر ومكتوب ان نص الادوات الموجوده حديثه جداً

my new site click here

هذا الموضوع مغلق.

مواضيع مشابهة