تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] كيف اجعل صورتين تغيران مواقعهما بسحب احدهما
#1
السلام عليكم

في المشروع السابق 

لعبة المقارنة بين الاطوال 

http://vb4arb.com/vb/showthread.php?tid=36328

اعتمدنا طريقة التقر على صورتين لتغير مواقعهما

هل فيه لقطة بحيث استعمل mouse move  لسحب صورة نحو صورة فيتم تغير مواقعهما

طبعا نحن نتعامل فقط بالسحب على خط افقي اي لا يتغير y بل فقط  x

حتى ذلكم الحين شكرا
 لعل الكلمة التي تنفعني لم أكتبها بعد
عبد الله بن المبارك
الرد }}}
تم الشكر بواسطة: WaeLx , حريف برمجة
#2
تفضل اخي الكريم : 

اضفت الاكواد التالية الى مشروعك بعد اذنك  بدلا من حدث الضغط على الصور :

كود :
   Dim movingPicOriginalLeft As Integer
   Dim movingPic As PictureBox

   Dim mX As Integer

كود :
   Private Sub PictureBox9_MouseDown(sender As Object, e As MouseEventArgs)
       Dim pic As PictureBox = sender
       pic.BringToFront()
       movingPic = pic
       movingPicOriginalLeft = pic.Left
       mX = e.X
   End Sub

كود :
   Private Sub PictureBox9_MouseMove(sender As Object, e As MouseEventArgs)
       Dim pic As PictureBox = sender
       If pic Is movingPic Then
           pic.Left += e.X - mX
       End If
   End Sub

كود :
   Private Sub PictureBox9_MouseUp(sender As Object, e As MouseEventArgs)
       Dim pic As PictureBox = sender
       Dim OverlappingPic As PictureBox = GetOvelapping(pic)
       RestoreLocation()
       If Not OverlappingPic Is Nothing Then
           SwapPicture(pic, OverlappingPic)
       End If
   End Sub
كود :
   Function GetOvelapping(picturebox As PictureBox) As PictureBox
       For Each pic In Pict
           If pic.Visible = False Then Continue For
           If pic Is picturebox Then Continue For
           If IsOverlapping(pic, picturebox) Then Return pic
       Next
       Return Nothing
   End Function

   Function IsOverlapping(pic1 As PictureBox, pic2 As PictureBox) As Boolean
       Return ((pic1.Left + pic1.Width) > pic2.Left) And
           ((pic1.Left) < pic2.Left + pic2.Width)

   End Function

   Sub SwapPicture(pic1 As PictureBox, pic2 As PictureBox)
       Dim tmpLeft As Integer
       tmpLeft = pic1.Left
       pic1.Left = pic2.Left
       pic2.Left = tmpLeft
   End Sub

   Sub RestoreLocation()
       If movingPic Is Nothing Then Return
       movingPic.Left = movingPicOriginalLeft
       movingPic = Nothing
       movingPicOriginalLeft = Nothing
       mX = Nothing
   End Sub

واضفت ايضا في الفورم لود :

كود :
       For Each pic In Pict
           AddHandler pic.MouseDown, AddressOf PictureBox9_MouseDown
           AddHandler pic.MouseUp, AddressOf PictureBox9_MouseUp
           AddHandler pic.MouseMove, AddressOf PictureBox9_MouseMove
       Next

وعملت كما طلبت اعتقد 
جرب واعطني رأيك


الملفات المرفقة
.zip   Math1apOrdre.zip (الحجم : 2.54 م ب / التحميلات : 38)
الرد }}}
#3
(10-09-20, 03:51 PM)Anas Mahmoud كتب : تفضل اخي الكريم : 

جرب واعطني رأيك

ما شاء الله ربي يجازيك خيرا استاذ انس

ممتاز  و سلس ......... ربي لا يحرمنا منك و من خدماتك

دوما خدوم للاخرين

سؤال سيدي الكريم

ما دور GetOvelapping(pic)

Swap


ما معنى Continue For
 لعل الكلمة التي تنفعني لم أكتبها بعد
عبد الله بن المبارك
الرد }}}
#4
(10-09-20, 04:50 PM)عبد الهادي بهاب كتب : سؤال سيدي الكريم

ما دور GetOvelapping(pic)

Swap


ما معنى Continue For


GetOvelapping تبحث عن مربع صورة يتقاطع مع مربع الصورة المرسل ، لتحديد مربعين الصور المطلوب تبديل موقعهما

Swap تقوم بتبديل اماكن مربعين الصور

Continue For تقوم بتخطي باقي دورة For الحالية والانتقال الى الدورة القادمة
الرد }}}
#5
تحية طيبة استاذ انس
 لعل الكلمة التي تنفعني لم أكتبها بعد
عبد الله بن المبارك
الرد }}}
تم الشكر بواسطة: asemshahen5 , Anas Mahmoud , حريف برمجة , WaeLx , WaeLx


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  كيف اجعل قيمة dateTimePicker2 تساوي dateTimePicker1 Adel27213 2 280 09-11-23, 09:07 PM
آخر رد: Adel27213
  كيف اجعل البرنامج في بداية الشهر ينفذ حدث معين بالاصح اريد البرنامج في تاريخ واحد من Adel27213 3 484 05-11-23, 01:45 AM
آخر رد: justforit
  [VB.NET] كيف اجعل البرنامج يحدد اخر يوم من كل شهر Adel27213 2 361 03-11-23, 06:50 AM
آخر رد: Adel27213
  هل ممكن اجعل عناصر ال LISTBOX بشكل افقي ismaeel 0 380 01-05-23, 11:26 PM
آخر رد: ismaeel
  [سؤال] كيف اقوم بسحب معلومات من صفحة ويكيبديا zxz5432 12 7,122 20-01-23, 01:27 AM
آخر رد: lysalh65@gmail.com
  كيف اجعل Autoscroll هي التي تزيد عدد الصفوف في عرض البيانات عبدالكريم برشدان 1 625 07-08-22, 02:55 PM
آخر رد: asmarsou
  كيف اجعل اداة panel شفافة عمار عمار 3 1,244 10-02-22, 11:53 AM
آخر رد: عمار عمار
  كيف اجعل خلفية اداة Label1 شفافة aftfm 8 4,511 29-01-22, 01:42 AM
آخر رد: محمود الصياد
  [VB.NET] كيف اجعل داتا جريد فيو ينتقل مع تاكست بوكس bilgacim 1 1,008 28-01-22, 04:30 AM
آخر رد: سعود
Sad [VB.NET] كيف اجعل برنامجي يفتح المتصفح الافتراضي ؟؟ ana ali 4 1,296 24-07-21, 04:00 PM
آخر رد: trakktour

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم