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

تحريك Command علي الفورم Drag And Drop

بدأه walled_aall@hot في 3 يوليو 2008 · 2 رد · 826 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

اريد معرفة طريقة تحريك Command علي الفورم

المعروفه بأسم drag and drop

عندي فورم وعليها مفتاحعايزاقدر احرك المفتاح الموجود علي الفوم وارتب اماكن المفاتيح وتتحفظ ......

www.acrowing.com

اول موقع عربي لرياضة التجديف

#2

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

الـ CommandButton يعتبر حالة خاصة في عملية الـ Drag-and-Drop لأن لديه استجابة افتراضية لحدث النقر (Click). فلو ضبطت الخاصية DragMode على Automatic فإنه لن يستجيب للنقر لأنه سيعتبر أن مجرد ضغط الزر الأيسر للفأرة هو بداية عملية سحب (Drag) - في الواقع هذا ينطبق على كافة العناصر القابلة للسحب عند ضبط الخاصية DragMode على Automatic.

لذلك يكون الحل كالتالي:

1. اترك الخاصية DragMode مضبوطة على Manual.

2. استعمل المنهج Drag لبدء عملية السحب بالزر الأيمن من داخل معالج الحدث MouseDown للـ Command. نستعمل الزر الأيمن للسحب حتى نسمح بتنفيذ الكود المكتوب في معالج الحدث Click، الذي هو استجابة للزر الأيسر.

3. يمكنك استعنال الخاصية Tag لتمييز العناصر المسحوبة بأية طريقة تريدها. مثلاً في الكود التالي استعملت الكلمة "DRAG" لتمييز الزر الذي يمكن سحبه (فقط للتوضيح).

4. في معالج الحدث DragDrop للنافذة اكتب الكود الذي تريد تطبيقه على العنصر (تحريكه أو غير ذلك).

* المثال التالي يحتاج إلى نافذة (Form) مع زر (Command1) و كتابة كلمة "DRAG" في الخاصية Tag للزر:

Private StartX As Single
Private StartY As Single

Private Sub Command1_Click()
	MsgBox "Hello"
End Sub

Private Sub Command1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
	' نتأكد من أن الزر المضغوط هو الزر الأيمن:
	If Button = vbRightButton Then
		' نحتفظ بإحداثيات نقطة بداية السحب لتصحيح موقع الإسقاط فيما بع:
		StartX = X
		StartY = Y
		Command1.Drag vbBeginDrag	' بدء عملية السحب
	End If
End Sub

Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single)
	' التأكد من مواصفات العنصر المسقط:
	If (TypeOf Source Is CommandButton) And (Source.Tag = "DRAG") Then
		' تحريك العنصر إلى الموقع الجديد:
		Source.Move X - StartX, Y - StartY
	End If
End Sub

أما بالنسبة إلى حفظ مواقع الأزرار لتجدها في أماكنها الجديدة عند تشغيل البرنامج في مرة قادمة فإنك بالتأكيد ستحتاج إلى حفظها خارج البرنامج، إما في ملف (ملف INI مثلاً) أو في سجل النظام (Windows Registry).

نرجو الاستفادة و السلام.

وَ قُلِ اعْمَلُوا فَسَيَرَى اللهُ عَمَلَكُمْ وَ رَسُولُهُ وَ الْمُؤْمِنُونَ

صدق الله العظيم

#3

مشكورررررررررررررررررررررررررررررررررر

www.acrowing.com

اول موقع عربي لرياضة التجديف

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