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

كيف يتم ربط المسار ملفات الصور بالكود في هذا البرنامج

مغلق
بدأه NASSER ALSAIDI في 12 نوفمبر 2001 · 21 رد · 2,547 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

ارجوا ان تتكرموا بالشرح كيف يتم وضع مسار للمجلد الذي به الصور

علما بإن الصور ستكون على اسطوانة cd بإستخدام الكود ولسي الإستعراض من قبل المستخدم

والمثال هو

http://arabteam.nicmatic.com/prog/badwi/Pi...ctureViewer.zip

مع جزيل الشكر والتقدير

على القائمين على المنتدي ومرتاديه

#2

إذا كنت تعرف أسم القارئ

Drive1 = "رمز القارئ"

#3

اخي العزيز قمت بأنشاء برنامج في بداياتي التعليمية يقوم برط الصور عن طريق مساراتها ولكن يجب أن تقوم بتخزين هذه المسارات في قاعدة بيانات ومن ثم تستدعي المسار وبالتالي سيقوم البرنامج بتحميل الصور من المسار الذي قمت بتحديده

#4

sory

to wirite in english

but I 'm wating the

solution

for this problem because I want to use code for 1000 photos or more

not only for one or ten.

brother محمد الفياض

I don't know which driver will with the user.

I already add u to my msn

Thanks

#5

ربما أكون لم افهم السؤال لكني سأجيب حسبما فهمت:

ضع الصور في نفس مجلد البرنامج ثم استخدم الخاصية Path للكائن App .. مثلا لنفترض أن الصورة AA.bmp على نفس مجلد البرنامج فاننا نقوم بتشغيلها على النحو التالي:

Private Sub Command1_Click()
 Path = IIf(Right(App.Path, 1) = "", App.Path, App.Path & "")
 Picture1 = LoadPicture(Path & "AA.bmp")
End Sub
#6

أخوتى الأعزاء

المثال في هذه الوصلة وأريد منكم ان تضعوا كود بدل ان يختار المستخدم

وإذا كان من الممكن يتم تطبيقه على البرنامج الذي في هذا الوصلة

http://arabteam.nicmatic.com/prog/ba...ctureViewer.zip

وهذا شرح عسى ان اوفق فيه على هذه الوصلة

استخدم

مع الشكر الجزيلexplain.jpg

#7

حقيقة لم افهم جيدا ماذا تقصد .. لكن مافهمته أن لديك اسطوانة وعلى مجلد معين منها توجد مجموعة من الصور تريد من برنامجك أن يتعرف على مشغل الاقراص الذي يحوي هذه الاسطوانة ثم يقوم يتكوين المسار وبعد ذلك يقوم بعرض الصور الموجودة في ذلك المجلد بتعاقب فهل هذا ماتقصده؟ أم أنك تريد عرض كافة الصور الموجودة على الاسطوانة، أم تريد استعراض الملفات داخل ذلك المجلد والمجلدات الفرعية الموجودة به.. ارجو التوضيح فكل ماسبق يمكن عمله بسهولة.

#8

نعم لدي اسطوانة وعلى مجلد معين منها توجد مجموعة من الصور تريد من برنامجك أن يتعرف على مشغل الاقراص الذي يحوي هذه الاسطوانة ثم يقوم بتكوين المسار وبعد ذلك يقوم بعرض الصور الموجودة في ذلك المجلد بتعاقب .

هذا ما أريدة بالضبط Read Only.

فأرجوا منكم التكرم بالمساعدة في هذا الأمر

مع جزيل الشكر والتقدير

#9

يمكنك ذلك بعدة طرق وهذه احداها وهي باستخدام المكتبة Microsoft Scripting Runtime ... قم باخفاء الاداة FileListBox وحذف الاداتين DirListBox و DriveListBox ثم استعمل الكود

Function CdDir(FolderName As String)
Dim Obj_FSO As Object, Obj_Drive As Object
Set Obj_FSO = CreateObject("Scripting.FilesystemObject")
For Each Obj_Drive In Obj_FSO.Drives
 If Obj_Drive.DriveType = 4 And Obj_Drive.IsReady = True Then
  CdPath = Obj_Drive.DriveLetter & ":" & FolderName
  If Dir(CdPath, vbDirectory) <> "" Then
   CdDir = CdPath
   Set Obj_FSO = Nothing
   Exit Function
  End If
 End If
Next
Set Obj_FSO = Nothing
End Function

Private Sub Command1_Click()
'AAA سيظهر مسار المجلد
'حسب رمز المشغل الحالي
MsgBox CdDir("AAA")
' إلى المجلد المحدد File1 سيتم ضبط مسار الاداة
File1.Path = CdDir("AAA")
'ومن هنا تستطيع اكمال برنامجك بالطرية الاعتيادية
End Sub

ارجو أن يكون المطلوب.

#10

أخي Read Only

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

ذلك ولقد كتبت طريقة فهل من الممكن أن توضح الطرح الأخري

للمنفعة .

لقد حصلت على المسار بعد تجربتى لهذا الدالة .ولكن لا يتم إستعراض

الصور .على الرغم أن البرنامج يعمل وحتى إذا أخترت صورة لا تظهر في الحهة المقابلة.

جزاك الله حيرا وزادك عملا وبارك الله فيك

مشكور أخوي على هذا الجهد

#11

بالنسبة لعرض الصورة يجب عليك أولا ضبط المسار إلى المسار الجديد

' I حيث
'قيمة متزايدة باستمرار كما عملت أنت في برنامجك
Picture1 = LoadPicture(CdDir("AAA") & "" & File1.List(I))

وهذه طريقة أخرى

'API تصريحات دوال
Private Declare Function PathFileExists Lib "shlwapi.dll" _
Alias "PathFileExistsA" (ByVal pszPath As String) As Long

Function GetPath$(FolderName$)
For I = 0 To Drive1.ListCount - 1
'Dir بدلا من الدالة PathFileExists لاحظ استخدمنا الدالة
'للتغلب على المشكلات التي قد تظهر
 If PathFileExists(Drive1.List(I) & "" & FolderName$) Then
  GetPath$ = Drive1.List(I) & "" & FolderName$
 End If
Next I
End Function


Private Sub Command1_Click()
MsgBox GetPath$("AAA")
End Sub

أما الطريقة الثالثة فهي الطريقة التقليدية لمثل هذه المهمة وهي باستخدام دالتي API .. GetDriveType و GetLogicalDriveStrings ...

وستجد أمثلتها منتشرة في المنتديات وموقع فيجوال بيسك...

ربما تكون هناك طرق أخرى .. ولكن الطرق السابقة هي أول ماطرأ على بالي..

#12

السلام عليكم

أستاذي العزيز Read Only

لقد عمل برنامج وتم إستعراض الصور من مجلد الأسطوانه

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

فهل تكرمت وكملت جميلك بالمساعدة وإيجاد حل لهذه المشكلة .علماً أننى سأستخدم هذه الطريقة لملفات أخري وبنفس الطريقة ولكن تؤزفني هذه المشكلة فهل أجد الحل لديكم بارك الله فيك ونفعك بما علمك وزادك علما فوق علمك.

#13

لم توضح ماهي المشكلة المتولدة لأن البرنامج لن يصدر أي خطأ فهو مجرد فحص .. على العموم يمكنك قلب الحلقة التكرارية للوصول للمطلوب ... وهناك ملاحظة نسيت التنويه عليها وهي أنه يجب أن يكون اسم المجلد الذي تحويه الاسطوانة طويلا كيلا يتشابه مع أسماء مجلدات أخرى لأي محركات أخرى .. أو يكون عبارة مجلد مضمن بداخل مجلد آخر ...

'API تصريحات دوال
Private Declare Function PathFileExists Lib "shlwapi.dll" _
Alias "PathFileExistsA" (ByVal pszPath As String) As Long

Function GetPath$(FolderName$)
For I = Drive1.ListCount - 1 To 0 Step -1
'Dir بدلا من الدالة PathFileExists لاحظ استخدمنا الدالة
'للتغلب على المشكلات التي قد تظهر
 If PathFileExists(Drive1.List(I) & "" & FolderName$) Then
  GetPath$ = Drive1.List(I) & "" & FolderName$
  Exit Function
 End If
Next I
End Function


Private Sub Command1_Click()
 MsgBox GetPath$("AAA")
End Sub

ملاحظة صغيرة للاخوة المشرفين .. لماذا لايمكنني استخدام علامات الجدولة في الكود ... اعتقد أن وجودها أكثر أهمية من تفعيل امكانية نسخ الكود من المنتدى.

#14

السلام عليكم ورحمة الله وبركاته

أستاذي العزيز Read Only

آسف على الـأخير في الرد ولكن لظروف خاصة لم أتمكن بالرد.

أولاُ :نبازك لكم بالشهر الكريم وكل عام وأنتم بخير وأتمنى لكم أسعد الأوقات وصوما مقبولا بإذن الله.

ثانياً: البرنامج عمل والبركة فيكم على هذا المجهود الطيب الذي تبذلونه.

ثالثاُ: هل يمكن تغير الكود الأخير وجعلة يعمل بدون ذكر driver1 ,list,file1 لأنى لا أريد أستخدم الكود على فورم لا يوجد به Driver or file1وصحيح من الممكن أستخدام كود المكتبة Microsoft Scripting Runtime ...

وفي الختام لا يسعنى الإ أن اشكرم جزيل الشكر

وبارك الله فيك

اللهم اجعل في قلوبنا نورا وفي أبصارنا نورا وفي أسماعنا نورا ومن فوقنا نورا ومن تحتنا نورا ومن أمامنا نورا ومن خلفنا نورا وعن أيماننا نورا وعن شمائلنا نورا وأعظم لنا نورا ياذا الجلال والإكرام .

#15

ماذا تقصد بـ

© . لماذا لايمكنني استخدام علامات الجدولة في الكود ... اعتقد أن وجودها أكثر أهمية من تفعيل امكانية نسخ الكود من المنتدى ©

اخوك

#16

الاخ/NASSER ALSAIDI

يجب عليك في هذه الحالة أن تحاكي عمل أداة FileListBox وتقوم باستخراج الملفات من المجلد المحدد وتضعها في مصفوفة. وهذا مثال يقوم بهذا العمل يعتمد على الدالة التي ذكرتها سابقا.

Private Sub Command1_Click()
Dim sArr() As String
 'AAA حيث أن المجلد المطلوب هو
 str_Dir = CdDir("AAA") & ""
 'استخراج الملفات من المجلد وحفظها في سلسلة نصية
 str_File = Dir(str_Dir)
 Do Until str_File = ""
   str_AllFiles = str_AllFiles & str_Dir & str_File & " "
   str_File = Dir
 Loop
 'تجزئة الملفات الموجودة في السلسلة في مصفوفة نصية
 sArr = Split(str_AllFiles)

 'Immediate طباعة الملفات التي تحويها المصفوفة إلى النافذة
For I = 0 To UBound(sArr)
 Debug.Print sArr(I)
Next I
End Sub

الاخ/MANSUR

بالنسبة للشطر الاول اعني المسافات البادئة في الكود.. أما بالنسبة للشطر الثاني فأقصد انه من الافضل استخدام الواصفة pre حتى ولو أدت التعديلات إلى عدم امكانية نسخ الكود.

#17

جزاك الله خيرا وبارك الله فيك

وزادك الله من واسع فضله

اللهم إنا نسألك أن تهب لكل منها لسانا صادقا ذاكرا ، وقلبا خاشعا منيبا ، وعملا صالحا زاكيا ، وإيمانا خالصا ثابتا ، ورزقا حلالا واسعا ، ونسألك أن تهبنا إنابة المخلصين ، وخشوع المخبتين ، ويقين الصديقين ، وسعادة المتقين ، ودرجة الفائزين ، يا أفضل من قصد ، وأكرم من سئل ، وأحلم من عصي ، يا الله ياذا الجلال والإكرام .

#18

السلام عليكم

الأخ Read Only

كيف يتم إختيار الصور بشكل عشوائي ؟

لاني أريد أن أستخدمه على البرنامج السابق

بارك الله فيك

اللهم ربنا انصرنا وانصر جميع المسلمين على أعداء الدين ، اللهم مزقهم شر ممزق وشتتهم كل مشتت واجعل الدائرة عليهم وانصرنا عليهم وامح آثارهم وآو منا أرضهم وديارهم واردد كيدهم في نحورهم وأعذنا من شرورهم وافعل بهم كما فعلت بثمود وعاد وفرعون ذي الأوتاد الذي طغوا في البلاد فأكثروا فيها الفساد ، اللهم صب عليهم صوت عذاب ، وحل بينهم وبين ما يشتهون وافعل بهم كما فعلت بأشياعهم من قبل .

#19

بعد هذه السطرين

'تجزئة الملفات الموجودة في السلسلة في مصفوفة نصية 
sArr = Split(str_AllFiles)

استخدم الكود

MsgBox sArr(Int(Rnd * (UBound(sArr) + 1)))

ولاتنسى العبارة Randomize في اعلى الاجراء.

#20

مشكور يا أستاذي على سرعة الرد

وبارك الله فيك

لكن أريد ان أستخدمه في هذه الدالة

========================

'API تصريحات دوال

Private Declare Function PathFileExists Lib "shlwapi.dll" _

Alias "PathFileExistsA" (ByVal pszPath As String) As Long

Function GetPath$(FolderName$)

For I = 0 To Drive1.ListCount - 1

'Dir بدلا من الدالة PathFileExists لاحظ استخدمنا الدالة

'للتغلب على المشكلات التي قد تظهر

If PathFileExists(Drive1.List(I) & "" & FolderName$) Then

GetPath$ = Drive1.List(I) & "" & FolderName$

End If

Next I

End Function

=======================

Private Sub Command1_Click()

MsgBox GetPath$("AAA")

End Sub

=======================

وأعذرني عن التقصبر في صياغة السؤال لك

اللهم إنك عفو كريم طيب تحب العفو فاعف عنا ، اللهم إنك عفو كريم طيب تحب العفو فاعف عنا ، اللهم إنك عفو كريم طيب تحب العفو فاعف عنا ، يا الله ياذا الجلال والإكرام ، يا الله يا ذا الجلال والإكرام ، يا الله ياذا الجلال والإكرام ، اللهم أعنا على ذكرك وشكرك وحسن عبادتك ، اللهم أعنا على ذكرك وشكرك وحسن عبادتك ، اللهم أعنا على ذكرك وشكرك وحسن عبادتك .

#21
Randomize
 MsgBox File1.List(Int(Rnd * File1.ListCount) )
#22

أستاذي العزيز Read Only

جزاك الله خير الجزاء وزادك علما فوق علمك

وبارك الله فيك

وتقبل منى فائق التحية والأحترام

اللهم إنا نسألك أن تهب لكل منها لسانا صادقا ذاكرا ، وقلبا خاشعا منيبا ، وعملا صالحا زاكيا ، وإيمانا خالصا ثابتا ، ورزقا حلالا واسعا ، ونسألك أن تهبنا إنابة المخلصين ، وخشوع المخبتين ، ويقين الصديقين ، وسعادة المتقين ، ودرجة الفائزين ، يا أفضل من قصد ، وأكرم من سئل ، وأحلم من عصي ، يا الله ياذا الجلال والإكرام .

هذا الموضوع مغلق.

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