PDA

View Full Version : بازکردن مسیر دلخواه برای انتخاب عکس روی فرم



iransim
جمعه 02 تیر 1402, 10:33 صبح
سلام دوستان
میدونم شاید سئوالم تکراری باشه ولی باور کنید دو سه روزه هر چی جستجو میکنم اون چیزی که مد نظر من باشه پیدا نکردم ، بهر حال ببخشید و مممنون میشم راهنمائی کنید .

من ی برنامه پرسنلی دارم طراحی میکنم که میخام ی گوشه از فرم اختصاص به نمایش عکس پرسنل باشه ، ی دکمه دارم که تصویر رو از پوشه PICPerson که تو مسیر و پوشه برنامه قراردادم فراخون میکنه
حالا میخوام وقتی دکمه اضافه کردن عکس رو میزنم فقط پوشه PICPerson که عکسها داخلش هست باز بشه و عکس رو برای اضافه کردن انتخاب کنم و نیاز به Browse کردن و جستجوی پوشه به صورت Explorer نباشه

در واقع میخام فقط این مسیر برام فراخوان بشه d:\InfoPerson\PicPerson

این نکته رو هم بگم که برای فراخوان و الحاق تصویر از کدهای زیر استفاده میکنم :

Dim obj As Object
Dim strFile As String
Dim strFolder As String
Dim varItem As Variant

Set obj = Application.FileDialog(3)
obj.AllowMultiSelect = True


If obj.Show Then


For Each varItem In obj.SelectedItems
strFile = Dir(varItem)
strFolder = Left(varItem, Len(varItem) - Len(strFile))
Me.Pic = strFolder + strFile


Next


End If


بازم ممنون از راهنمائی و لطف اساتید محترم

mazoolagh
شنبه 03 تیر 1402, 10:42 صبح
سلام و روز خوش
همیشه اول مستندات رو بخونین:

FileDialog.InitialFileName property (Office) (https://learn.microsoft.com/en-us/office/vba/api/office.filedialog.initialfilename)

FileDialog.InitialView property (Office) (https://learn.microsoft.com/en-us/office/vba/api/office.filedialog.initialview)

MsoFileDialogView enumeration (Office) (https://learn.microsoft.com/en-us/office/vba/api/office.msofiledialogview)

کافی هست مقدار initialfilename و initialview رو تنظیم کنین.

iransim
یک شنبه 04 تیر 1402, 10:10 صبح
سلام و روز خوش
همیشه اول مستندات رو بخونین:

FileDialog.InitialFileName property (Office) (https://learn.microsoft.com/en-us/office/vba/api/office.filedialog.initialfilename)

FileDialog.InitialView property (Office) (https://learn.microsoft.com/en-us/office/vba/api/office.filedialog.initialview)

MsoFileDialogView enumeration (Office) (https://learn.microsoft.com/en-us/office/vba/api/office.msofiledialogview)

کافی هست مقدار initialfilename و initialview رو تنظیم کنین.

سلام و تشکر بابت پاسخ شما
امکانش هست بفرمائید پارامترهایی رو که معرفی کردید داخل کد مورد استفاده خودم کجا و چطور میشه استفاده کرد ؟
بازم ممنون

mazoolagh
یک شنبه 04 تیر 1402, 13:01 عصر
سلام دوباره

1- در همون لینک ها کد نمونه همراه با توضیح کامل در مورد این پراپرتی ها آمده - مشخصه که نگاه نکردین!

2- در انجمن ها همیشه کدها رو درون تگ مناسب (با توجه به نوع کد) قرار بدین - اینجا میشه تگ VB :
154751

iransim
یک شنبه 04 تیر 1402, 13:32 عصر
سلام دوباره

1- در همون لینک ها کد نمونه همراه با توضیح کامل در مورد این پراپرتی ها آمده - مشخصه که نگاه نکردین!

2- در انجمن ها همیشه کدها رو درون تگ مناسب (با توجه به نوع کد) قرار بدین - اینجا میشه تگ VB :


154751

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

در مورد شماره 2 : بله چشم و از راهنمائی و تذکر شما ممنونم

mazoolagh
سه شنبه 06 تیر 1402, 10:27 صبح
1- اول رفرنس به Office Object Library رو به برنامه اضافه میکنین:
154755

این کار رو به این خاطر میکنیم که کدنویسی راحت تر هست بخاطر فعال شدن intellisense روی ابجکتهای اون کتابخانه،
در کل early-binding باعث میشه خیلی از خطاها در زمان کامپایل مشخص بشه.
154756

2- کد شما چیزی شبیه این میشه:
Private Sub Btn_Select_Click()
Dim fDialog As FileDialog
Set fDialog = Application.FileDialog(msoFileDialogOpen)

With fDialog
.title = "تصویر پرسنل را انتخاب کنید"
.InitialFileName = "d:\InfoPerson\PicPerson"
.InitialView = msoFileDialogViewTiles
.AllowMultiSelect = False
.Filters.Clear
.Filters.Add "image files", "*.gif; *.jpg; *.jpeg; *.png"

If .Show Then
Me.Image1.Picture = .SelectedItems(1)
End If
End With
End Sub

iransim
سه شنبه 06 تیر 1402, 11:34 صبح
1- اول رفرنس به Office Object Library رو به برنامه اضافه میکنین:
154755

این کار رو به این خاطر میکنیم که کدنویسی راحت تر هست بخاطر فعال شدن intellisense روی ابجکتهای اون کتابخانه،
در کل early-binding باعث میشه خیلی از خطاها در زمان کامپایل مشخص بشه.
154756

2- کد شما چیزی شبیه این میشه:
Private Sub Btn_Select_Click()
Dim fDialog As FileDialog
Set fDialog = Application.FileDialog(msoFileDialogOpen)

With fDialog
.title = "تصویر پرسنل را انتخاب کنید"
.InitialFileName = "d:\InfoPerson\PicPerson"
.InitialView = msoFileDialogViewTiles
.AllowMultiSelect = False
.Filters.Clear
.Filters.Add "image files", "*.gif; *.jpg; *.jpeg; *.png"

If .Show Then
Me.Image1.Picture = .SelectedItems(1)
End If
End With
End Sub

سلام و سپاس مجدد
ضمن تشکر از کدهای ارسالی ، کدها به درستی کار کرد ، ولی هدف و مقصود اصلی من از طرح سئوال این بود که وقتی روی دکه انتخاب عکس کلیک میکنم پنجره انتخاب عکس به صورت مستقیم مسیر
"d:\InfoPerson\PicPerson" را برای انتخاب عکس باز کنه و سایر خصوصیات پنجره انتخاب عکس در مرحله بعدی قرار داشت کدهای مورد استفاده من و شما پنجره Explorer رو باز میکنه و کاربر مجددا باید مسیر درایو d و پوشه
InfoPerson و پوشه
PicPerson را جستجو کند
بازم ممنون

mazoolagh
سه شنبه 06 تیر 1402, 11:46 صبح
ادیتور فروم مشکل داره!
کدی که نوشتم و ارسال کردم این بوده:
154757
یک \ آخر مسیر هست که ادیتور اون رو پاک میکنه.

iransim
چهارشنبه 07 تیر 1402, 08:54 صبح
ادیتور فروم مشکل داره!
کدی که نوشتم و ارسال کردم این بوده:
154757
یک \ آخر مسیر هست که ادیتور اون رو پاک میکنه.

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