
السلام عليكم ورحمة الله وبركاته
اخي ومشرفنا ITPROGRAMMER شكرا لك على تثبيت الموضوع ولا شكر على واجب .
والان ناتي الى اكمال المشروع بشكله النهائي .
الإجراء التاسع : وهو الإجراء قبل الأخير Stop_All وهو لإيقاف أي عملية مشاهدة سابقة مهما كان نوعها هذا الإجراء سنضيف إلية
الأوامر حسب النوع الذي سنشرحه أولا وهو PictureBox1
كود
Private Sub Stop_All()
Me.PictureBox1.Visible = False
Me.PictureBox1.Image = Nothing
'هنا سنضيف باقي الاوامر
End Sub
الإجراء العاشر : أما الإجراء الرئيس والأخير في مشروعنا هو Function المشاهدة وسنبدأ بإضافة أول نوع يمكن مشاهدته وهو :
1- الصور: نقوم بإضافة من ToolBox ال PictureBox1 ونضعه على الفورم ونجعله صغير الحجم (50×50)
و نجعل Visible له False و SizeMode = StretchImage ويجب عدم استخدام imag.fromfile هنا
وذلك لان الملف يبقى مؤمن ولا يمكن إلغائه من Temp عند الخروج وسنستخدم طريقة أخرى في قراءة الصورة.
كود
Function PreviewFile(ByVal typ As String, ByVal pan As Panel, ByVal pa As String) As Boolean
Select Case typ
Case ".jpg", ".bmp", ".png", ".jpe", ".tif"
Try
PictureBox1.Visible = True
Dim fs As System.IO.FileStream
fs = New System.IO.FileStream(pa, IO.FileMode.Open, IO.FileAccess.Read)
PictureBox1.Image = System.Drawing.Image.FromStream(fs)
fs.Close()
Me.PictureBox1.Parent = pan
PictureBox1.Dock = DockStyle.Fill
PictureBox1.Refresh()
Catch ex As Exception
MsgBox("لا استطيع فتح الملف")
End Try
End Function
2- ملفات Txt,RichText : نذهب الى ToolBox ونختار RichTextBox1 ونضعه على الفورم ونجعله صغير
الحجم (50×30) و نجعل Visible له False ونضيف الكود التالي إلى إجراء stop_all :
كود
Me.RichTextBox1.Visible = False
ونضيف الكود التالي إلى Function PreviewFile في جملة Case
كود
Case ".txt", ".rtf"
Try
Me.RichTextBox1.Visible = True
Me.RichTextBox1.Clear() 'لتفريغه
Me.RichTextBox1.Parent = pan
Me.RichTextBox1.Dock = DockStyle.Fill
If typ = ".rtf" Then
Me.RichTextBox1.LoadFile(pa, RichTextBoxStreamType.RichText)
Else
Me.RichTextBox1.LoadFile(pa, RichTextBoxStreamType.PlainText)
End If
Me.RichTextBox1.Refresh()
3- والآن لعرض صفحة web : وهنا لن يقوم بتخزين الملفات المرفقة في صفحة Web ولكنها ستعمل جميع
اللنكات الموجودة بها ويمكن دخول إلى أي صفحة أخرى عن طريقها أو عمل Refresh لها ولن يقوم بتخزين
الصفة المفتوحة الى في حالة كانت مخزنه على الهارد دسك وقمنا بعمل فتح لها من زر فتح عندها فقط يمكن
تخزينها وهنا لأنني اقرأ صفحة htm,html .
نذهب الى ToolBox ونختار WebBrowser1 ونضعها على الفورم ونجعلها صغير الحجم (50×30) و
نجعل Visible لها False ونضيف الكود التالي إلى إجراء stop_all
كود
Me.WebBrowser1.Visible = False
ونضيف الكود التالي إلى Function PreviewFile في جملة Case
كود
Case ".html", ".htm"
Try
Me.WebBrowser1.Parent = pan
Me.WebBrowser1.Visible = True
Me.WebBrowser1.Dock = DockStyle.Fill
Me.WebBrowser1.Navigate(pa)
Catch ex As Exception
MsgBox("لا استطيع فتح الملف")
End Try
الآن سنبدأ بإضافة الأدوات التي سنحتاجه في هذا البرنامج وعددها 6 أدوات أربع أدوات منها اعتقد أنها موجودة على كل
جهاز وهي RealPlayer,MediaPlayer,FlashPlayer, Acrobat Reader أما الأدوات التي اعتقد أنها غير
موجودة على كل جهاز فهي :
أ- أداة مجانية من Microsoft للمطورين وحجمها (100KB) فقط وهي لعرض ملفات Office داخل برنامجك (Form ) واسمها DSOFramer.OCX ويمكنكم تحميلها من هذا الرابط (أو من المرفقات).
اداة DSOFramer.OCXوعمل install لها ويفضل نسخ DSOFramer.OCX إلى C:\winxp\system32
ب- الأداة الثانية وهي AniGif.OCX ويمكنك تحميها من المرفقات ويفضل نسخها إلى
C:\winxp\system32 ويمكنك أن تبحث عنها في جهازك فمن الممكن أن تجدها.
ولإضافتها إلى مشروعنا فنذهب إلى ToolBox نضغط Click يمين ثم نختار Add Tab وسميها ما
تشاء ثم نضع الماوس عليها و نضغط Click يمين ثم نختار Choose Itemsونقوم بإضافة الأدوات
ونختارها حسب المسار الموجود في الصورة التي عادة ما تكون مخزنه فيه وكما في الصورة التالية

بعد إضافة جميع الأدوات اذهب إلى ToolBox وقم بسحبها واحدة تلو الأخرى إلى الفورم ونجعلها صغير
الحجم (50×50) و نجعل Visible لها False ونقوم بإضافة الكود لها في Stop_all ويكون هنا قد اكتمل هذا
الإجراء ويكون على الشكل التالي :
كود
Private Sub Stop_All()
Me.PictureBox1.Visible = False
Me.RichTextBox1.Visible = False
Me.WebBrowser1.Visible = False
Me.AxAcroPDF1.Visible = False
Me.AniGIF1.Stop()
Me.AniGIF1.Visible = False
Me.FlashObj.StopPlay()
Me.FlashObj.Visible = False
Me.RAL1.DoStop()
Me.RAL1.Visible = False
Me.WMP1.Ctlcontrols.stop()
Me.WMP1.Visible = False
Me.AxFramerControl1.Close()
Me.AxFramerControl1.Hide()
End Sub
4- لعرض ملفات AcroPDF : نضيف الكود التالي إلى Function PreviewFile في جملة Case
كود
Case ".pdf"
Try
Me.AxAcroPDF1.LoadFile(pa)
Me.AxAcroPDF1.Visible = True
Me.AxAcroPDF1.Parent = pan
Me.AxAcroPDF1.Dock = DockStyle.Fill
Me.AxAcroPDF1.setShowToolbar(False)
Me.AxAcroPDF1.setView("fit width")
Me.AxAcroPDF1.setLayoutMode("continuous")
Me.AxAcroPDF1.Show()
Catch ex As Exception
MsgBox("لا استطيع فتح الملف")
End Try
5- لعرض وتشغيل ملفات GifAnimation : نضيف الكود التالي إلى Function PreviewFile في جملة Case
كود
Case ".gif"
Try
AniGIF1.Visible = True
AniGIF1.ReadGIF(pa)
AniGIF1.Parent = pan
AniGIF1.Dock = DockStyle.Fill
AniGIF1.Play()
Catch ex As Exception
MsgBox("لا استطيع فتح الملف")
End Try
6- ولعرض وتشغيل ملفات FlashPlayer : نضيف الكود التالي إلى Function PreviewFile في جملة Case
كود
Case ".swf"
Try
FlashObj.Visible = True
FlashObj.Parent = pan
FlashObj.Dock = DockStyle.Fill
FlashObj.Refresh()
FlashObj.Stop()
FlashObj.Movie = pa
FlashObj.Play()
Catch ex As Exception
MsgBox("لا استطيع فتح الملف")
End Try
7- ولعرض وتشغيل ملفات RealPlayer : نضيف الكود التالي إلى Function PreviewFile في جملة Case
كود
Case ".wav", ".mpa", ".mp2", ".mp3", ".au", ".aif", ".aiff", ".snd", ".wma", ".rmi", ".rm", ".amr", ".3gp", ".amr", ".ram"
Try
RAL1.Visible = True
RAL1.Parent = pan
RAL1.Dock = DockStyle.Fill
RAL1.Refresh()
RAL1.Source = pa
RAL1.DoPlay()
Catch ex As Exception
MsgBox("لا استطيع فتح الملف")
End Try
وهنا نختار Extension حسب ما نريد تشغيله على Real أو على Media ويجب عدم وضعها في الاثنتين ، فقط يجب
وضعها في واحدة منهم
8- ولعرض وتشغيل ملفات MediaPlayer : نضيف الكود التالي إلى Function PreviewFile في جملة Case
كود
Case ".avi", ".qt", ".mov", ".mpg", ".mpeg", ".m1v", ".wmv", ".asf", ".mid", ".midi"
Try
WMP1.Visible = True
WMP1.Parent = pan
WMP1.Dock = DockStyle.Fill
WMP1.Refresh()
WMP1.URL = pa
WMP1.Ctlcontrols.play()
Catch ex As Exception
MsgBox("لا استطيع فتح الملف")
End Try
9- ولعرض ملفات Microsoft Office : عن طريق الأداة DSOFramer وهذه الأداة هي مخصصة
للمطورين وهي وحدها يمكن عمل مشروع كامل بها و تحتوي على أوامر عديدة حيث تستطيع أن تقوم
بعمل معظم أوامر Office برمجيا وإجراء التخزين والتعديل والمعادلات وتشغيل Micros تحكم كامل
فيها ولم أقم بصراحة بتجربة كامل الأوامر لها واكتفيت بعرض الملفات وهي موضوع مشروعنا هذا
ولعمل ذلك نضيف الكود التالي إلى Function PreviewFile في جملة Case
كود
Case ".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".pptm", ".xlsm", "docm", "xlsb"
Try
Me.AxFramerControl1.Parent = pan
Me.AxFramerControl1.Visible = True
Me.AxFramerControl1.Dock = DockStyle.Fill
Me.AxFramerControl1.Refresh()
Me.AxFramerControl1.Open(pa)
Catch ex As Exception
MsgBox("لا استطيع فتح الملف")
End Try
10- وهي الأخيرة وإذا لم يكن Extension للملف مذكور أعلاه ولكن يمكن تشغيله في برامج موجودة على
الجهاز فمثلا يمكن تخزين ملف Database.mdb في مشروعنا أي أننا نخزن ملف .mdb في ملف
.mdb ويمكننا تشغيله عن طريق برنامج Microsoft Access ولا يمكننا دمجه بالفورم ويعمل بالفورم
الخاص به وكذلك يوجد ملفات أخرى مثلا .EXE وغيرها الكثير والتي تكون معرفة في Registry
الجهاز فيمكن تشغيلها. وذلك بإضافة الكود التالي إلى Function PreviewFile في جملة Case
كود
Case Else
Try
Process.Start(pa)
Catch ex As Exception
MsgBox("نوع غير معروف, لا يمكن عرضه .....")
Return False
End Try
وفي مشروعنا نخزن جميع الملفات بغض النظر انه يمكن تشغيلها أو لا يعطي البرنامج أن الملف نوعه
غير معروف ولا يمكن تشغيله. ولكن يمكن أن نقوم بعمل له تخزين على الهارد دسك واستعماله في
برامج أخرى وعلى سبيل المثال يمكن تخزين الأدوات .OCX أو .DLL وغيرها.
وهنا يصبح Function PreviewFile كاملا كما في الكود التالي :
كود
Function PreviewFile(ByVal typ As String, ByVal pan As Panel, ByVal pa As String) As Boolean
Select Case typ
Case ".jpg", ".bmp", ".png", ".jpe", ".tif"
Try
PictureBox1.Visible = True
PictureBox1.Image = Image.FromFile(pa)
Me.PictureBox1.Parent = pan
PictureBox1.Dock = DockStyle.Fill
PictureBox1.Refresh()
Catch ex As Exception
MsgBox("لا استطيع فتح الملف")
End Try
Case ".txt", ".rtf"
Try
Me.RichTextBox1.Visible = True
Me.RichTextBox1.Clear()
Me.RichTextBox1.Parent = pan
Me.RichTextBox1.Dock = DockStyle.Fill
If typ = ".rtf" Then
Me.RichTextBox1.LoadFile(pa, RichTextBoxStreamType.RichText)
Else
Me.RichTextBox1.LoadFile(pa, RichTextBoxStreamType.PlainText)
End If
Me.RichTextBox1.Refresh()
Catch ex As Exception
MsgBox("لا استطيع فتح الملف")
End Try
Case ".html", ".htm"
Try
Me.WebBrowser1.Parent = pan
Me.WebBrowser1.Visible = True
Me.WebBrowser1.Dock = DockStyle.Fill
Me.WebBrowser1.Navigate(pa)
Catch ex As Exception
MsgBox("لا استطيع فتح الملف")
End Try
Case ".pdf"
Try
Me.AxAcroPDF1.LoadFile(pa)
Me.AxAcroPDF1.Visible = True
Me.AxAcroPDF1.Parent = pan
Me.AxAcroPDF1.Dock = DockStyle.Fill
Me.AxAcroPDF1.setShowToolbar(False)
Me.AxAcroPDF1.setView("fit width")
Me.AxAcroPDF1.setLayoutMode("continuous")
Me.AxAcroPDF1.Show()
Catch ex As Exception
MsgBox("لا استطيع فتح الملف")
End Try
Case ".gif"
Try
AniGIF1.Visible = True
AniGIF1.ReadGIF(pa)
AniGIF1.Parent = pan
AniGIF1.Dock = DockStyle.Fill
AniGIF1.Play()
Catch ex As Exception
MsgBox("لا استطيع فتح الملف")
End Try
Case ".swf"
Try
FlashObj.Visible = True
FlashObj.Parent = pan
FlashObj.Dock = DockStyle.Fill
FlashObj.Refresh()
FlashObj.Stop()
FlashObj.Movie = pa
FlashObj.Play()
Catch ex As Exception
MsgBox("لا استطيع فتح الملف")
End Try
Case ".wav", ".mpa", ".mp2", ".mp3", ".au", ".aif", ".aiff", ".snd", ".wma", ".rmi", ".rm", ".amr", ".3gp", ".amr", ".ram"
Try
RAL1.Visible = True
RAL1.Parent = pan
RAL1.Dock = DockStyle.Fill
RAL1.Refresh()
RAL1.Source = pa
RAL1.DoPlay()
Catch ex As Exception
MsgBox("لا استطيع فتح الملف")
End Try
Case ".avi", ".qt", ".mov", ".mpg", ".mpeg", ".m1v", ".wmv", ".asf", ".mid", ".midi"
Try
WMP1.Visible = True
WMP1.Parent = pan
WMP1.Dock = DockStyle.Fill
WMP1.Refresh()
WMP1.URL = pa
WMP1.Ctlcontrols.play()
Catch ex As Exception
MsgBox("لا استطيع فتح الملف")
End Try
Case ".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".pptm", ".xlsm", "docm", "xlsb"
Try
Me.AxFramerControl1.Parent = pan
Me.AxFramerControl1.Visible = True
Me.AxFramerControl1.Dock = DockStyle.Fill
Me.AxFramerControl1.Refresh()
Me.AxFramerControl1.Open(pa)
Catch ex As Exception
MsgBox("لا استطيع فتح الملف")
End Try
Case Else
Try
Process.Start(pa)
Catch ex As Exception
MsgBox("نوع غير معروف, لا يمكن عرضه .....")
Return False
End Try
End Select
Return True
End Function
تم بحمد الله وعونه البرنامج ويكون قد اكتمل وآمل أن أكون قد وفقت في طريقة عرضه وشرحه وان يكون قد استفاد منه
الجميع وأي استفسار أنا في الخدمة إنشاء الله ، وارجوا من جميع من جرب عمل هذا المشروع أن يذكر لي أي خطأ
يحدث فيه حتى أقوم بمعالجته أو أي اقتراح لتطويره.
والسلام عليكم ورحمت الله وبركاته.
تحياتي للجمع.