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

أريد الكود من بعد إذنكم لسحب ملفات من نوع Mp3 و Wav لل Listview

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

السلام عليكم أخواني الكرام

الله يعطيكم العافية

أخواني انا عندي مشروع بالفيجول بيسك

واريد ان اسحب ملفات من نوع Mp3 و Wav للمشروع ويوجد فيه ListView

يعني عملية Drag & Drop

أريد الكود من بعد إذنكم لسحب ملفات من نوع Mp3 و Wav للـ ListView

أنظرو الصورة توضح

113565826879503.png

#2

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

اضبط الخاصية OLEDropMode للـ ListVew على 1 (ccOLEDropManual). انتبه! هناك خاصية أخرى تشبهها في الاسم هي OLEDragMode و هي لا تهمنا هنا.

انسخ الكود التالي للقسم العام (General Declarations Section). هما مجرد دالتين مساعدتين و يمكنك استعمالهما في أي مشروع آخر:

  1. ' دالة لاستخلاص اسم و امتداد الملف دون المسار
  2. Private Function ExtractFileName(APath As String) As String
  3. Dim LastSlash As Long
  4.  
  5. APath = Trim(APath)
  6. If APath = "" Then
  7. ExtractFileName = ""
  8. Else
  9. LastSlash = InStrRev(APath, "", -1, vbTextCompare)
  10. If LastSlash = 0 Then
  11. ExtractFileName = APath
  12. Else
  13. ExtractFileName = Mid(APath, LastSlash + 1)
  14. End If
  15. End If
  16. End Function
  17.  
  18. ' دالة لاستخلاص مسار الملف دون الاسم و الامتداد
  19. Private Function ExtractFilePath(APath As String) As String
  20. Dim LastSlash As Long
  21. Dim Result As String
  22.  
  23. APath = Trim(APath)
  24. If APath = "" Then
  25. Result = ""
  26. Else
  27. LastSlash = InStrRev(APath, "", -1, vbTextCompare)
  28. If LastSlash = 0 Then
  29. Result = APath
  30. Else
  31. Result = Left(APath, LastSlash - 1)
  32. If Right(Result, 1) = ":" Then Result = Result & ""
  33. End If
  34. End If
  35. ExtractFilePath = Result
  36. End Function
  37.  

في النافذة المحتوية على الـ ListView اكتب الكود التالي في الحدث OLEDragDrop الخاص بالـ ListView (هذا الكود يفترض أن الـ ListView تحتوي على عمودين: الأول لاسم الملف و الثاني لمسار الملف كما في الصورة أدناه):

  1. Private Sub ListView1_OLEDragDrop(Data As MSComctlLib.DataObject, Effect As Long, Button As Int
    eger, Shift As Integer, x As Single, y As Single)
  2. Dim Index As Long
  3. Dim Item As ListItem
  4. Dim AddFile As Boolean
  5.  
  6. If Data.Files.Count > 0 Then
  7. For Index = 1 To Data.Files.Count
  8. AddFile = False
  9. If Right(Data.Files(Index), 4) = ".mp3" Then
  10. AddFile = True
  11. ElseIf Right(Data.Files(Index), 4) = ".wav" Then
  12. AddFile = True
  13. Else
  14. AddFile = False
  15. End If
  16. If AddFile Then
  17. Set Item = ListView1.ListItems.Add(, , ExtractFileName(Data.Files(Index)))
  18. Item.SubItems(1) = ExtractFilePath(Data.Files(Index))
  19. Item.Selected = True
  20. End If
  21. Next Index
  22. End If
  23. End Sub
  24.  

لاحظ أن الكود السابق يسمح بسحب مجموعة من الملفات مع بعضها، لكنه يسمح فقط بإضافة ملفات mp3 و wav و يهمل بقية الآنواع (إذا كانت الملفات المسحوبة ذات أنواع مختلطة).

post-28631-1223506498_thumb.jpg

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

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

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

#3

يعطيك ألف عافية أخي najy_zl

ممكن بس ترفعلي المشروع اللي انت عملته

وشكراً لك مرة أخرى

تحياتي لك

#5

يعطيك ألف عافية أخي najy_zl

ممكن بس ترفعلي المشروع اللي انت عملته

وشكراً لك مرة أخرى

تحياتي لك

#6

السلام عليكم أخي najy_zl

أخي الكريم ممكن من بعد اذنك ترفعلي المشروع اللي انت عملته

والله يوفقك دنيا وآخرة

أنتظر ردك

#7

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

رغم أن الأمر لا يستحق إرفاق المشروع لأنه لا يحتوي على أي شيء إضافي غير الذي ذكرته في المشاركة الأولى، لكن لعيونك ها هو المشروع بين يديك...

Drag_Files_From_Explorer.rar

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

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

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

#8

الف شكر لك اخي العزيز najy_zl

الله يقويك ويعطيك الصحة والعافية

تحياتي لك

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…