تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[مثال] من المنتدى القديم شرح كيفية صنع " شريط الصور " خطوة بخطوة + الشرح التفصيلي (2من2)
#1
السلام عليكم 

بالاول الي ما قرأ الدرس الاول وهو صنع اداة ImageContainer الي راح نستخدمها بالبرنامج 

شرح كيفية صنع " شريط الصور " خطوة بخطوة + الشرح التفصيلي ( درس 1 من 2 )

والان بعد ان انتهيتو من صنع الاداة لنقم بأستعمالها بالمشروع 

اذهب الى الفورم الرئيسي 

1 - قم بأضافة Panel وليكن اسمها pnlPictures ( الي راح راح يكون الشريط بداخلها )
2 - قم بتغيير خاصية Dock الى Bottom ( حتى يكون بالجهة التحتية للفورم )
3 - خاصية Height لتكن قيمتها 300 او مثل ما تحب 
4 - خاصية AutoScroll لتكن true 
--------------------------------------------

4 - قم بأضافة PictureBox وليكن اسمه pic 
5 - قم بتغيير خاصية Dock الى Fill ( حتى يملأ باقي مساحة الفورم )

--------------------------------------------

6 - قم بأضافة Button بأي شكل او اي مكان تحبه اي حتى ممكن بــ ToolStrip يكون احلى 
7 - اكتب نصه مثلا Open Folder او Browse Folder ( لان عمله راح يكون فتح فولدر واخذ الصور منه )
--------------------------------------------

والان اضافة لكود ImageContainer :

قبل كل شيء لنقم بعمل اضافة بسيطة في كود الاداة واضافة الخاصية IsNormalMode كالاتي :

رموز PHP:

كود :
        public bool IsNormalMode 
        { 
            get { return normalMode; } 
        }  

راح تفيدنا بعرفة اذا كان True يعني ان الاداة بالحالة العادية وان الماوس ليس بداخل محيط الاداة واذا False يعني العكس . . . 

------------------------------------------

والان مع كود الفورم : 

قبل كل شيء خلي نقوم بعمل Method الي تجلب ملفات الصور من فولد معين وهي الدالة الرئيسية بالفورم : 

رموز PHP:

كود :
        void LoadPictures(string folder) 
        { 
            int startX = 5; 
            int startY = 8; 
            pnlPictures.Controls.Clear(); 
            string[] files = Directory.GetFiles(folder, "*.*", System.IO.SearchOption.TopDirectoryOnly); 
                foreach (string file in files) 
                { 
                    if(file.EndsWith(".jpg") || file.EndsWith(".png") || file.EndsWith(".bmp") || file.EndsWith(".JPG") || file.EndsWith(".gif")) 
                    { 
                        ImageContainer img = new ImageContainer(); 
                        img.Location = new Point(startX,startY); 
                        img.Tag = file; 
                        img.Height = pnlPictures.Height - 30; 
                        img.Width = img.Height; 
                        img.Image = Image.FromFile(file); 
                        pnlPictures.Controls.Add(img); 
                        startX += img.Size.Width + 5; 
                    } 

                } 
        }  

الدالة السابقة يطلب بيها متغير سيكون مسار الفولدر

السطر التالي لمسح ما تحويته pnlPictures من ادوات 

رموز PHP:

كود :
pnlPictures.Controls.Clear();  

ثم اخذ كل الملفات الموجودة بالفولدر 

ثم اذا اي من الملفات ينتهي امتدادها بأي من امتدادات الصور ( الي انا اعرفها ) وممكن اذا تعرف غير امتدادات تقدر تضيفها 

بالنسبة لـ startX و startY راح يكون موقع الاداة بالنسبة لــ pnlPictures 

وزيادة الــ startX مع كل اضافة حتى يصبح شريط الصور افقي 

ثم اسناد قيمة الــ Image من قيمة المتغير file 

واخيرا اضافة الصورة الى pnlPictures 

------------------------------------------------------

هذه الدالة لم تنتهي لاننا لم نقم بوضع الــ Click Event Handler الى الاداة 
سنقوم بالتعديل بعد العملية التالية وهي الــ Method الي ستعمل عند ضغط الاداة بواسطة الماوس :

رموز PHP:

كود :
        private void ViewPicture(object sender,EventArgs e) 
        { 
            foreach (ImageContainer img in pnlPictures.Controls) 
            { 
                if (!img.IsNormalMode) 
                { 
                    Bitmap bmp = (Bitmap)img.Image; 
                    pictureBox1.Image = img.Image; 
                    if (bmp.Height <= 500 && bmp.Width <= 700) { pic.SizeMode = PictureBoxSizeMode.CenterImage; } else { pic.SizeMode = PictureBoxSizeMode.Zoom; } 
                    break; 
                } 
            } 
        }  

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

والان من دالة LoadPictures قم بأضافة السطر البرمجي التالي : 

رموز PHP:

كود :
img.Click += new EventHandler(ViewPicture);  



[b]في كود الــ Button او الكود الي من خلاله نختار الفولدر كالاتي :

رموز PHP:
[/b]

كود :
FolderBrowserDialog fbd = new FolderBrowserDialog(); 
if(fbd.ShowDialog == DialogResault.OK) 
  { 
    LoadPictures(fbd.SelectedPath); 
  }  
[color=#007700][/color]




الان شغل البرنامج وابدأ العمل عليه ,, المفروض يعمل بصورة صحيحة 100% 
كان عندي الف تطوير للمثال السابق بس حبيت اعطي فكرة الاساسية حتى المبتدئين ما يواجهون تعقيدات ,, الي يحب اضيفله تطويرات تخص الصور او عملية Load ياريت يشاركنا 

منتظر مشاركاتكم الي تحتوي المثال الي كملناه قبل شوية واستفساراتكم وتعليقاتكم 
كملنا والحمد لله الدرس الثاني والاخير 
تحياتي وبالتوفيق للكل ,, اخوكم زيد
الرد }}}
تم الشكر بواسطة: أبو عمر , أبو عمر
#2
بارك الله فيك
سبحان الله والحمدلله ولا إله إلا الله والله أكبر
 اللهم اغْفِرْ لِلمؤمنين والمؤمنات والمسلمين والمسلمات الأحياء منهم والأموات
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  سورس كود اداة الباركود هدية لهذا المنتدى الغالي . asemshahen5 26 14,421 24-11-23, 10:54 PM
آخر رد: atefkhalf2004
Video [درس فيديو] شرح إنشاء تطبيق Xamarin & SQLite (تخزين الصور في قاعدة البيانات وعرضها في الهاتف) rabia al hamdani 0 436 14-09-23, 10:20 AM
آخر رد: rabia al hamdani
Video [درس فيديو] شرح كيفية أضافة أو إزالة أدوات برمجية بالكود من والى واجهة التطبيق Xamarin_Forms AND rabia al hamdani 0 696 19-05-23, 10:29 PM
آخر رد: rabia al hamdani
Video [درس فيديو] شرح أبسط طريقة لعمل تطبيق محادثة C# Xamarin خطوة بخطوة + كود rabia al hamdani 0 1,194 20-03-23, 01:17 AM
آخر رد: rabia al hamdani
Video [درس فيديو] شرح تصميم أداة برمجية تعرض شاشة هاتف الاندرويد في الحاسوب خطوة بخطوة rabia al hamdani 0 779 10-01-23, 03:49 AM
آخر رد: rabia al hamdani
Video [درس فيديو] شرح كيفية عمل استعلامات فرعية للحقول المرتبطة بجداول اخرى واستعراضها Xamarin & sqlite rabia al hamdani 0 1,001 10-08-22, 12:36 AM
آخر رد: rabia al hamdani
Video [درس فيديو] شرح كيفية توليد كود واجهة استعلامات تفاعلية إحترافية خاصة بجدول الطلاب Sqlserver rabia al hamdani 2 2,226 05-08-22, 03:51 AM
آخر رد: rabia al hamdani
Video [درس فيديو] شرح كيفية أستخدام المكتبة البرمجية في المشارع المصممة بلغات الدوت نت (C#, VB.net ,#F) rabia al hamdani 0 1,425 11-06-22, 07:29 AM
آخر رد: rabia al hamdani
Video [درس فيديو] 4- إنشاء تطبيق اندرويد مع قاعدة بيانات Sqlite3 وتحويل Sql Server TO Sqlite خطوة بـ.. rabia al hamdani 0 2,061 11-05-22, 02:27 AM
آخر رد: rabia al hamdani
  [مشروع] لعبة الذاكرة مبسطة ( مع الشرح ) Anas Mahmoud 4 3,139 03-09-21, 01:42 PM
آخر رد: devante.celvin

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم