PDA

View Full Version : درگ فایلی داخل برنامه



سید حمید حق پرست
سه شنبه 25 بهمن 1390, 11:53 صبح
با سلام خدمت دوستان
یک سوال دارم :
چطوری میشه یک فایلرو داخل برنامه درگ کنیم و مسیر فایل در یک تکستباکس نمایش داده بشه؟

ممنون میشم راهنماییم کنید

یا علی(ع)

محسن واژدی
سه شنبه 25 بهمن 1390, 15:57 عصر
سلام
برای فعال کردن drag&drop دوخاصیت OLEDragMode و OLEDropMode بصورت زیر تنظیم میکنیم:


OLEDragMode=Automatic
OLEDropMode=Manual


سپس دستوری مانند زیر را در رویداد OLEDragDrop برای دریافت و نمایش مسیر فایل مینویسیم:

Private Sub Text1_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single)
Text1 = Data.Files.Item(1)
End Sub


نمونه زیر را هم بررسی کنید

موفق باشید

سید حمید حق پرست
سه شنبه 25 بهمن 1390, 16:20 عصر
از راهنمایتون خیلی ممنون . شرمنده یک سوال دیگه داشتم :

راهی هست که تکسترو فیلتر کنیم و فقط یک پسوند رو نشون بده ؟

مثلا فقط مسیر فایلهای رار رو نشون بده و اگر بجز فایل رار فایل دیگه ای درگ کردیم داخل تکست باکس مسیرشو نشون نده یا ارور بده

محسن واژدی
سه شنبه 25 بهمن 1390, 16:36 عصر
بله، در رویداد OLEDragOver اگر آرگومان Effect را برابر 0 قرار دهیم، فایل drag شده پذیرفته نمیشود

در کد زیر که اگه در نمونه قبلی قرار بدین از این به بعد فقط فایل های rar پذیرفته میشن:

Private Sub Text1_OLEDragOver(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single, State As Integer)
If Not Data.Files(1) Like "*.rar" Then Effect = 0
End Sub


موفق باشید

IamOverlord
سه شنبه 25 بهمن 1390, 16:44 عصر
سلام دوستان.
اون Like ای که گذاشتین چیه؟!

محسن واژدی
سه شنبه 25 بهمن 1390, 20:32 عصر
سلام دوستان.
اون Like ای که گذاشتین چیه؟!
سلام علیکم
همانطور که اطلاع دارید از عملگر Like برای مقایسه دو رشته استفاده میکنیم همانطور که در کد بالا مشاهده میکنید توسط این عملگر مسیر فایل drag شده را مقایسه میکنیم تا ببینیم که آیا مسیر به .rar که در واقع پسوند مورد نظر ماست ختم میشود یا خیر. که در نتیجه این بررسی اگر مسیر مقایسه شده با الگو مطابقت داشته باشد مقدار True در غیر اینصورت False برگشت میدهد

موفق باشید