منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : اريد كود عرض الصورة من مسار فى اليست او جريد
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
السلام عليكم اخوانى 

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

الصور تكون مخزنة فى فولدر  مثال لذلك 

عرض اسعار او عرض الصور للاصناف
استخدم هذا الكود
كود :
    PictureBox1.Load(ListBox1.SelectedItem)
اريد كود جلب الصور وعرضها حسب 
البحث
يعرض عرض صور الاصناف
وعليكم السلام ورحمة الله وبركاته

انت بحاجة لتوضيح اولاً كيفية تخزين مسار الصور بقاعدة البيانات
هل من خلال اسم الصورة فقط او اسم المجلد مع الصورة

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

تحياتى لك
وتمنياتى لك التوفيق
شكرا لردك استاذ الجوكر

اريد المسار كامل لحرية اختيار مكان لحفظ الصور

الفكرة 
          اريد وضع صورة للصنف او المنتج 
وعند البحث عن المنتج يجلب الصورة

وعند عرض  تصنيف معين يظهر الصنف والصورة فى الجريد

اريد اعمل مثل الصورة المرفقة 
لو احد لدية مثال اكون شاكر
الشكر لله والحمد لله
والحمد لله على كل حال

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

Access
http://vb4arb.com/vb/showthread.php?tid=28905

SQL
http://vb4arb.com/vb/showthread.php?tid=28906

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

اما بخصوص نفس الامر ولكن لحفظ الصورة بجوار البرنامج
واستدعاء الصورة فى الداتا جريد مع البحث 
ساعمل على هذا السورس حتى تعم الفائدة قريباً بامر الله

ولكن بشكل عام شرح نظرياً
فكل ما انت بحاجة اليه هو عمود من نوع نص بجدول الاصناف
والعمود ده سيتم حفظ به اسم الصورة او اسم المجلد مع الصورة

فمثلاً مجلد البرنامج باسم 123 كمثال
بداخله الببرنامح 123.exe وبجواره مجلد باسم IMG

عند عمل الاضافة سيتم استخدام كود انشاء مجلد باسم الصنف / رقم الصنف
ليكون المسار المجلد
PHP كود :
123\IMG\name

ومن ثم عمل نسخ للصورة المختارة الى هذا المجلد يكون المسار بالنهاية
كود :
123\IMG\name\11.PNG

فاليك التالى
اما حفظ المسار كما هو بالاعلى فى العمود الذى ذكر بالاعلى
او يكتفى ان تقوم بحفظ كالتالى
كود :
\name\11.PNG

وعند العرض ستقوم بجلب مسار مجلد البرناج وتدرج بعده اسم مجلد IMG
من ثم القيمة الخاصة بالصورة وهو اسم مجلد الصنف والصورة التى بداخله

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

فعن قريب اذا لم يصادفنى اى موضوع بخصوص هذا الامر
ساقوم بعمل مثال مرفق به سورس للمطلوب

تحياتى لك
وتمنياتى لك التوفيق

يمكنك مراجعة هذا الموضوع
http://vb4arb.com/vb/showthread.php?tid=29354

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

ولو تكرمت بعمل مثال شامل لتعم الفائدة
هل ممكن مساعدة حضرتك
سوف اقوم بعمل مثال للتعديل
الشكر لله والحمد لله 
والحمد لله على كل حال

بطبيعة الحال عند عرض الاستعلام فى الداتا جريد
سيعرض اسم / مسار الصورة بدلاً من الصورة نفسها

لذلك ستحتاج الى عمل كود بعد تعبئة الداتا جريد بالاستعلام
والكود عبارة عن For ليقوم بتعديل كل الاسطر لعمود الصورة
بدل ما يعرض مسار الصورة فقط سيجعلها كا عرض صورة

الكود بعد تعبئة الداتا جريد من كود الاستعلام سيكون كالتالى
كود :
       Dim DGViMage As New DataGridViewImageColumn
       DGViMage.HeaderText = "صورة الصنف"
       DGViMage.ImageLayout = DataGridViewImageCellLayout.Zoom
       DataGridView1.Columns.Add(DGViMage)

       For Each SetCells As DataGridViewRow In DataGridView1.Rows
           SetCells.Height = 50
           SetCells.Cells(DataGridView1.ColumnCount - 1).Value = Image.FromFile(SetCells.Cells(55).Value)
       Next

طبعاً ستقوم بتغيير رقم 55 الى رقم العمود اللى يتحتوى على مسار الصورة

طيب حالياً عند الاختبار لدينا ما يقال عليه مشكلة وهو التالى
1- بان العمود الذى يحتوى على مسار الصورة / اسم الصورة حتى الان موجود
2- العمود الذى تم انشائه لعرض الصورة لا يعرض الصورة ويعطى شكل ×

لاتمام حل كلاً من هذا سيتم التالى

بخصوص البند رقم 1 وهو اخفار هذا العمود كل ما تحتاج اليه هو الكود التالى
كود :
       DataGridView1.Columns(55).Visible = False

كل ما تحتاج اليه فقط تغيير رقم 55 الى رقم العمود لديك
طيب وبخصوص البند رقم 2 وهو ظهور الصورة على شكل ×

يرجع الامر هنا لعدم استكمال المسار فى هذا الجزر من الكود
كود :
Image.FromFile(SetCells.Cells(55).Value)

حيث ان كل ما يقوم به هو جلب اسم / مسار الصورة كما فى قاعدة البيانات

فمثلاً اذا كان القيمة هي
PHP كود :
\name\11.PNG 

فكل ما فى الامر انك محتاج وضع مسار البرنامج مع مجلد الصور الرئيسي

ولاتمام ذلك سيكون بحاجة لوضع كمثال
كود :
Application.StartupPath & "\IMAGE"

ليصبح شكل السطر بهذا الشكل
كود :
           SetCells.Cells(DataGridView1.ColumnCount - 1).Value = Image.FromFile(Application.StartupPath & "\IMAGE" & SetCells.Cells(55).Value)

الان الكود كاملاً الذى يوضع بعد تعبئة الداتا جريد من كود الاستعلام
كود :
       Dim DGViMage As New DataGridViewImageColumn
       ' اسم راس العمود فى الداتا جريد
       DGViMage.HeaderText = "صورة الصنف"
       DGViMage.ImageLayout = DataGridViewImageCellLayout.Zoom
       DataGridView1.Columns.Add(DGViMage)

       For Each SetCells As DataGridViewRow In DataGridView1.Rows
           ' ارتفاع الخلاية لاتاحة عرض الصورة
           SetCells.Height = 50
           SetCells.Cells(DataGridView1.ColumnCount - 1).Value = Image.FromFile(Application.StartupPath & "\IMAGE" & SetCells.Cells(55).Value)
       Next
       DataGridView1.Columns(55).Visible = False

كل ما هو مطلوب فقط تغيير رقم 55 الى رقم العمود الذى يحتوى على مسار
وكذلك تغيير كلمة IMAGE الى اسم المجلد الرئيسي الذى يحتوى على مجلدات الصور
واخيراً وهام جداً ان تجعل المسار الصورة بقاعدة البيانات يبداء بـ \
بحيث يكون \ بعدها اسم المجلد name بعدها \ ومن ثم اسم الصورة 11.PNG

الى هنا يتم انهاء الشرح مع الكود
اتمنى يكون الشرح بسيط وبدون اى متاهة

احببت ان اشرح ووضع الكود بدلاً من عمل مثال 
حتى يتاح لك التعود والتعلم من الامر وحيث ان الرد السابق يحتوى على فكرة الامر ايضاً

تحياتى لك
وتمنياتى لك التوفيق
شكرا جد ا لك استاذ 
                                     الجوكر

 تم استخدام الاكواد المرفقة 
لكن ظهرخطاء يظهر اسم الفولدرالصور مكرر قمت بالغاء الفولدرمن المسار واشتغل تمام

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

عمل اكثر من رائع وتطبيق طبقاً للشرح
لكن ما كنت اقصده عند حفظ المسار بقاعدة البيانات
ليس ان يكتب مثل 
كود :
\saved\Image 000.png

لانك بالاساس خلاص تعلم ان مجلد saved
موجود بالفعل وما كنت اشير اليه هو
مع كل اضافة يتم انشاء مجلد جديد بداخل مجلد saved

ويكون اسم المجلد الجديد رقم الصنف ليصبح المسار
كود :
\1542377\image.png

بحيث عند الاستدعاء والعرض يكون بهذا الشكل
كود :
saved\1542377\image.png

الفكرة منها هو التالى
1- معرفة مجلد صور كل صنف عند الدخول على المجلد
2- مستقبلياً اذا احببت عمل للصنف اكثر من صورة وما شبه يكون المجلد قابل لذلك

طبعاً الامر اختياري لفعل ذلك
وما قمت انت به فى المشروع يكفي لما تريده تماماً

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

النقطة الاخيرة وهو ما يفيدك فى عمل مجلد لكل صنف
الذى يحتوى على صورة او اكثر 

هو عند اتمام حذف الصنف انت لا تحتاج الى
حذف الصورة او عدد الصور التى بداخله

يكتفي فقط حذف المجلد مباشراً وبهذه الطريقة 
تم حذف جميع الصورة التى بداخله

بالنهاية المشروع المرفق مثالي
لا اجد اى كود قد يحتاج الى التعديل او النقاش عليه

لذلك اكتفي بهذا الشرح فقط

تحياتى لك
وتمنياتى لك التوفيق
الصفحات : 1 2