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

نسخة كاملة : حذف الصورة من المجلد
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
على كل حال بما انك وجدت الحل من مشاركة الاخ شكر الله له هذا اهم شيء.
لكن انا مستغرب ان المثال لم يعمل عندك.
هل شغلت المشروع ام انك نسخت اكواد معينة!
نسخت فقط الاكواد بالمشاركة رقم 6 لم أضف عيهم و لم أنقص منهم شيءا 
بالمرة الاولى يشتغل عادي
أما المرة الثانية فيعطيني خطا و ما يشتغل
بعد الاطلاع على الحل الذي وضعه الأخ(justforit) :
وجدت البرنامج يعمل ولكن كان ينقصه كود التحقق(ربما ظن أنك ستدرك ذلك وتضعه أنت)..
مثلا في كود الحفظ تعدل الجزئية إلى :
PHP كود :
Dim pic As New IO.FileInfo(Me.PictureBox1.ImageLocation)
If 
IO.File.Exists(Title_LogoThen
    IO
.File.Delete(Title_Logo)
End If 

وفي كود الحذف يعدل إلى :
PHP كود :
If IO.File.Exists(Title_LogoThen
    IO
.File.Delete(Title_Logo)
 
   Me.PictureBox1.Image My.Resources.Nopicture
End 
If

MsgBox("تمت عملية الحذف بنداح"MessageBoxButtons.OKMessageBoxIcon.Information
كل الطرق تؤدي إلى روما ...
بالنسبة لـ الاستعانة بمكتبة (Stream)  لم أكن أعتمد عليها من قبل، بل كنت أكتب الكود مباشرة مع أداة الصور..
ولكن مرة نصح أحد الأساتذة بها عندما يتعلق الأمر بحذف الصور، كي لا تقع بمشكلة العنصر المستخدم من قبل مستخدم آخر..
ولازلت أمشي على نصيحته ..
السلام عليكم 
شكرا جزيلا اخ Taha Okla على المعلومات القيمة التي تفيدنا بها بارك الله فيك و زادها بموازين حسناتك 
فعلا الان بعد هذه التعديلات صار يشتغل كلو تمام بارك الله فيك
الاستعجال و التركيز في اشياء اخرى ظنا مني ان السائل ربما يحتاجها لاحقا هذا هو سبب نقص  الحل اللتي اقدمها للاخوة
هذا اذا انا فهمت كل السؤال
مثلا بهذا المثال انظر للموديول كتبت اكواد تحريك الفورم عبر النقر على عناصر محددة مثل 
Panel Label PictureBox
كذل ك اضفت مؤقت يقرر متى يمكن ازرار الحفظ و الحذف للصورة بناءا على تواجد  رابط الصورة
يتم التعامل مع رابط الصورة و اسنادها الى 
ImageLocation الخاصية التابة لـ PictureBox1
 و هكذا
التالي اكواد الموديول:
PHP كود :
Module Module1
    Dim scw 
As Integer Screen.PrimaryScreen.WorkingArea.Right
    Dim sch 
As Integer Screen.PrimaryScreen.WorkingArea.Bottom
    Dim ax
ay As Integerdr As Boolean

    Public myform 
As Form Nothing

    Public picspath 
As String IO.Path.GetDirectoryName(Application.ExecutablePath) & "\FolderImage\"
    Public Title_Logo As New IO.FileInfo(picspath & "
My_Logo.jpg")
    Public picfolder As String = IO.Path.GetDirectoryName(Title_Logo.FullName)

    Public Sub rep(f As Form)
        If f.Left < 0 Then f.Left = 0
        If f.Top < 0 Then f.Top = 0
        If f.Right > scw Then f.Left = scw - f.Width
        If f.Bottom > sch Then f.Top = sch - f.Height
    End Sub
    Public Sub mdown(sender As Object, e As MouseEventArgs)
        If e.Button = MouseButtons.Left Then
            dr = True
            ax = sender.MousePosition.X - myform.Left
            ay = sender.MousePosition.Y - myform.Top
        End If
    End Sub
    Public Sub mmove(sender As Object, e As MouseEventArgs)
        If dr Then
            myform.Left = sender.MousePosition.X - ax
            myform.Top = sender.MousePosition.Y - ay
        End If
    End Sub
    Public Sub mup(sender As Object, e As MouseEventArgs)
        dr = False
        rep(myform)
    End Sub
    Public Sub mcontrols(f As Control)
        If TypeOf f Is Form Then
            AddHandler f.MouseDown, AddressOf mdown
            AddHandler f.MouseMove, AddressOf mmove
            AddHandler f.MouseUp, AddressOf mup
        End If
        For Each c As Control In f.Controls
            mcontrols(c)
            If TypeOf (c) Is Panel Or TypeOf (c) Is Label Or TypeOf (c) Is PictureBox Then
                AddHandler c.MouseDown, AddressOf mdown
                AddHandler c.MouseMove, AddressOf mmove
                AddHandler c.MouseUp, AddressOf mup
            End If
        Next
    End Sub

    Public Function Isimage(img As String) As Boolean
        Try
            Dim im As New Bitmap(img)
            Return True
        Catch ex As Exception
            Return False
        End Try
    End Function
End Module 
و التالي اكواد الفورم بشكل كامل:
PHP كود :
Public Class Form1
    Private Sub Form1_Load
(sender As ObjectAs EventArgsHandles MyBase.Load
        myform 
Me
        mcontrols
(myform)

 
       If Title_Logo.Exists False Then
            Me
.PictureBox1.Image My.Resources.bgp1
        Else
            Me
.PictureBox1.ImageLocation Title_Logo.FullName
        End 
If
 
       If IO.Directory.Exists(picfolder) = False Then
            IO
.Directory.CreateDirectory(picfolder)
 
       End If
 
   End Sub
    Private Sub Form1_Activated
(sender As ObjectAs EventArgsHandles Me.Activated
        myform 
Me
    End Sub
    Private Sub btnclose_Click
(sender As ObjectAs EventArgsHandles btnclose.Click
        Hide
()
 
       Close()
 
   End Sub
    Private Sub btnmin_Click
(sender As ObjectAs EventArgsHandles btnmin.Click
        Me
.WindowState FormWindowState.Minimized
    End Sub
    Private Sub btnselectimage_Click
(sender As ObjectAs EventArgsHandles btnselectimage.Click
        Dim o 
As New OpenFileDialog
        If o
.ShowDialog DialogResult.OK Then
            If Isimage
(o.FileNameThen
                Me
.PictureBox1.ImageLocation o.FileName
            Else
                MsgBox
("الملف المحدد ليس صورة")
 
           End If
 
       End If
 
   End Sub
    Private Sub btndelimage_Click
(sender As ObjectAs EventArgsHandles btndelimage.Click
        If Title_Logo
.Exists Then
            Title_Logo
.Delete()
 
       End If
 
       Me.PictureBox1.Image My.Resources.bgp1
        MsgBox
("تم حذف الصورة و عرض الصورة الافتراضية"MsgBoxStyle.Exclamation"")
 
   End Sub
    Private Sub btnsaveimage_Click
(sender As ObjectAs EventArgsHandles btnsaveimage.Click
        If Me
.PictureBox1.ImageLocation.Trim <> "" Then
            Dim pic 
As New IO.FileInfo(Me.PictureBox1.ImageLocation)
 
           If Title_Logo.Exists Then Title_Logo.Delete()
 
           pic.CopyTo(Title_Logo.FullName)
 
           MsgBox("تم نسخ الصورة لمسار المجلد")
 
       End If
 
   End Sub
End 
Class 
بعد السيد الفاضل justforit
برجاء تعديل الكود لكي الاحتفاظ وعرض الصور المخزنة وايضا حذف الصورة المحددة
إقتباس :الاستعجال و التركيز في اشياء اخرى ظنا مني ان السائل ربما يحتاجها لاحقا هذا هو سبب نقص  الحل اللتي اقدمها للاخوة

هذا اذا انا فهمت كل السؤال


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

المبرمج إن لم يستطع قراءة الكود قبل تنفيذه، من الصعب عليه تصحيح الأخطاء التي تنتج أثناء كتابة الأكواد
فليست كل الأخطاء يمكن على المترجم معرفتها .. بل الكثير منها أخطاء منطقية ولا تظهر إلا بعد تنفيذ الكود 
بل وبعضها لا يظهر إلا بعد عشرات من التنفيذ الصحيح (وهذا أسوء شيء موجود في لغة الـ VB.Net)
من لم يتعامل معه المتغيرات الصحيحة والتحويل بينها ضمن الكود (حتى لو لم يطلب الكمبايلر منه ذلك) :
سيقع بهذه الأخطاء التي لن تظهر إلا بعد عشرات من المحاولات التي كان ينفذ فيها ما يريده المستخدم (وفجأة تجد برنامجك أصبحت تعترضه الأخطاء)..

فأفضل نصيحة يقدمها المبرمجين المحترفين  لطلابهم ولكل من يسير بطريق البرمجة وكتابة البرامج هي 
عمل ريفلكتور للبرنامج بعد إتمامه (للتخلص من الأكواد المعقدة واستخدام الأكواد البسيطة ومعرفة مواطن الخلل أثناء استخدام متغير مكان آخر)..
..
بالمثال حاولت وضع كل الحيل لكي لا تظهر رسالة الملف موجود او مستخدم او غيرها 
ان فاتني شيء فيه فاخبروني
تصفحو الموديول ففيه اكواد يخص تحريك الفورم 
اذا اضفت الموديول لمشروعك واردت ان تستخدم اكواد تحريك الفورم  فتحتاج حدثين
Form1_Load
Form1_Activated
تكتب في الاول  الكود التالي:
        myform = Me
        mcontrols(myform)
وتكتب في الحدث الاخر الكود التالي:
myform = Me
الكلام للمبتدئين فقط مع الشكر و التحية  لكل الخبراء 
الاخ justforit
بارك الله فيك و جزاك كل خير مثال فعلا رائع و يشتغل تمام 
شكرا جزيلا
الصفحات : 1 2