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

مساعدة بخصوص حفظ الصور في مجلد خارجي

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

السلام عليكم

بعمل برنامج صادر ووارد واريد تسجيل الصور في ملف خارجي في مسار البرنامج ولكن اريد تسجيل كل صورة في هذا الملف برقم المستند وامنع المستخدم لحظة اختيار المكان الي هيحفظ فية الصورة من غير رقهما او ان يكتب اسم مجرد انة يختار المكان بتاع الحفظ ويظغط موافق فقط

فكيف يتم عمل ذلك اريد مثال توضيحي .

بســم الله الـرحمــن الرحيــم

لا خير في كاتم العلم ...زكاه العلم ...التعليم صدقة جارية

#2

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

استعمل الكود التالي لعرض نافذة اختيار مجلد:

  1. Private Type BrowseInfo
  2. hWndOwner As Long
  3. pIDLRoot As Long
  4. pszDisplayName As String
  5. lpszTitle As Long
  6. ulFlags As Long
  7. lpfnCallback As Long
  8. lParam As Long
  9. iImage As Long
  10. End Type
  11.  
  12. Private Const BIF_RETURNONLYFSDIRS = 1
  13. Private Const MAX_PATH = 260
  14.  
  15. Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BrowseInfo) As Long
  16. Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pidList As Long, ByVal lpBuffer As String) As Long
  17. Private Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long
  18.  
  19. Private Function SelectDirectory(ByVal hWin As Long, ByVal Prompt As String, ByRef Result As String) As Boolean
  20. Dim lpIDList As Long
  21. Dim tBrowseInfo As BrowseInfo
  22.  
  23. With tBrowseInfo
  24. .hWndOwner = hWin
  25. .lpszTitle = lstrcat(Prompt, "")
  26. .pszDisplayName = Space(MAX_PATH)
  27. .ulFlags = BIF_RETURNONLYFSDIRS
  28. End With
  29.  
  30. lpIDList = SHBrowseForFolder(tBrowseInfo)
  31.  
  32. If (lpIDList) Then
  33. Result = Space(MAX_PATH)
  34. SHGetPathFromIDList lpIDList, Result
  35. Result = Left(Result, InStr(Result, vbNullChar) - 1)
  36. SelectDirectory = True
  37. Else
  38. Result = ""
  39. SelectDirectory = False
  40. End If
  41. End Function
  42.  

ثم استدع الدالة SelectDirectory كالتالي:

  1. Private Sub Command1_Click()
  2. Dim APath As String ' متغير حيث سيتم تخزين المسار الذي يختاره المستخدم
  3.  
  4. If SelectDirectory(Me.hWnd, "Where?", APath) Then
  5. '
  6. ' إجراءات حفظ الصورة
  7. '
  8. End If
  9. End Sub
  10.  

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

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

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

#3

اخي الكريم

انا شاكر جدا علي ردك علية

ولكن انا مش عارف احط الكود دة فين يارت تعمل لية مثال فية الاكواد

وربنا يجزيك خير ان شاء الله

بســم الله الـرحمــن الرحيــم

لا خير في كاتم العلم ...زكاه العلم ...التعليم صدقة جارية

#4

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

قرأت سؤالك الآخر في موضوعك "سؤال بخصوص Commondialog".

انسخ الجزء الأول من الكود وضعه في بداية كود الـ Form التي تستعملها للحفظ.

و في المكان الذي حاولت أن تستخدم فيه الـ CommonDialog استعمل الكود التالي (الذي يستدعي الدالة SelectDirectory): لتحديد مكان (مجلد) الحفظ. أما اسم الملف فأنت تقول أنه محدد مسبقاً في TextBox أو غيره:

  1. Dim Path As String
  2.  
  3. If SelectDirectory(Me.hWnd, "الرجاء اختيار مجلد", Path) Then
  4. Path = Path & Text1.Text & ".bmp"
  5. ' بقية خطوات حفظ الصورة
  6. End If
  7.  

سنساعدك أكثر إذا أخبرتنا أين توجد الصورة أصلاً؟ هل هي معروضة في PictureBox أو في Image أم أنها موجودة في ملف آخر أو ... ؟

و إذا أمكن أرسل لنا محاولتك لنقوم بالتعديل عليها.

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

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

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

#5

تفضل ياخي هذا البرنامج

اريد عند الظغط علي مفتاح ماسح ضوئي سوف تظهر شاشة الاسكانر ويطلب منك تحديد مكان لحفظ الصورة انا عايز الجزء بتاع FileName يكون موجود فية القيمة اللي موجودة في التكست بوكس بتاع كود الصادر ويمنع المستخدم من تغيرة وتكون save as tupe اقل نوع من انواع الصور حتي لا تاخذ مساحة

________________.rar

بســم الله الـرحمــن الرحيــم

لا خير في كاتم العلم ...زكاه العلم ...التعليم صدقة جارية

#6

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

بعد ما قمت بتنزيل المشروع و فحصه، فإني أعتقد أنك تريد حفظ الصور في المجلد Photo التابع لمجلد المشروع نفسه. و النقطة الأخرى أن الصورة سيتم حفظها في ملف باسم محدد مسبقاً (رقم معين مثلاً) و أن هذا الاسم (أو الرقم) موجود في مربع نص Text1 مثلاً (أو في متغير أو غيره، المهم أنك أنت محدده مسبقاً).

إذا كان فهمي هذا صحيحاً فأنت لست في حاجة إلى طلب مكان حفظ الصورة أو طلب اسم لملفها لأن كل ذلك عندك، و عليه فغ،ك تقوم بالتالي (لم أتمكن من حفظ المشروع مع التعديلات لأن به مكونات ليست على حاسوبي):

1. في النافذة ScanImage الخاصة بإدخال الصورة من الـ Scanner انقر نقراً مزدوجاً على الزر "نسخ إلى ملف" (و اسمه cmdScanToFile).

2. امسح الجزء التالي من الكود:

  1. dlgSelectFile.CancelError = True
  2. dlgSelectFile.Filter = "Bitmap Files (BMP)|*.bmp"
  3. dlgSelectFile.DefaultExt = "bmp"
  4. dlgSelectFile.DialogTitle = "تحديد ملف لحفظ الصورة من الماسح الضوئي"
  5. dlgSelectFile.flags = cdlOFNPathMustExist Or cdlOFNHideReadOnly
  6. dlgSelectFile.FileName = ""
  7. dlgSelectFile.ShowSave
  8. FileName = MyFileMan.ReplaceFileExt(dlgSelectFile.FileName, "bmp")
  9. If MyFileMan.FileExists(FileName) Then
  10. MsgPrompt = "الملف:" & vbCrLf & FileName & vbCrLf & "موجود من قبل. هل تريد استبداله؟"
  11. If MsgBox(MsgPrompt, vbQuestion Or vbYesNo Or MSG_ARABIC) = vbNo Then Exit Sub
  12. End If
  13.  

3. اكتب بدله الكود التالي:

  1. FileName = MyFileMan.AddBackslash(App.Path) & "Photo" & Text1.Text & ".bmp"
  2.  

فإذا كانت Text1 تحتوي مثلاً على "55" فإن الصورة سيتم حفظها في الملف 55.bmp في المجلد Photo.

ملاحظة أخيرة: الصور من النوع BMP ليست أقل أنواع الصور حجماً، فهناك JPG أو GIF أصغر منها، لكن لا يمكنك التحويل من نوع إلى آخر بمجرد تغيير امتداد (لاحقة) الملف.

يمكنك استعمال الملف ChangeBmp.dll المرفق لتحويل الصورة الناتجة إلى JPG (الأفضل) أو GIF، ثم حذف الملف BMP. المرفقات تحتوي أيضاً على ملف نصي يبين كيفية استعمال الملف ChangeBmp.dll.

ChangeBitmaps.rar

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

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

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

#7

تمام الله ينور يبشمهندس

اشتغلت تمام

هل في امكانية ظغط الصورة لأني جربت اقل حجم GIF وكانت بردة مساحتها كبيرة

بســم الله الـرحمــن الرحيــم

لا خير في كاتم العلم ...زكاه العلم ...التعليم صدقة جارية

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

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

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

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

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