หากมีคำถาม ขอให้ไปโพสต์ลง เว็บบอร์ดจีทูจีเน็ตดอตคอม ตัวใหม่แทนน่ะครับ

หรือติดต่อเข้ามาทาง Inbox ที่ เฟซบุ๊ค ผมครับ

หน้าหลัก
ข่าวสาร - บทความ ทั้งหมด
VB 6/VB.Net
ASP/ASP.Net
จับฉ่ายคอมพิวเตอร์
เรียนรู้ผ่าน Flash Movie
บทความที่มีผู้ตอบล่าสุด  
 RSS Feeds
 ดาวน์โหลดโปรแกรม RSS Reader ได้ที่นี่ ...   Download โปรแกรม RSS Reader

Forum - www.g2gnet.com
Webmaster - www.g2gnet.com
Visitors - Session views
 5 1 0 9 6 0 2

7 ธันวาคม พ.ศ.2549
241 Users On-Line.
Visitors - Page views
 8 4 0 2 7 5 9
1 กุมภาพันธ์ พ.ศ.2551

Google   
เว็บ g2gnet.com
ขนาดตัวอักษร:  

แจกฟรี ... Source Code โปรแกรมดูทีวีออนไลน์ ด้วย VB.Net (2008) ร่วมกับเอกสาร XML

Category »  VB 6/VB.Net
โดย : Webmaster เมื่อ 24/7/2551 14:01:00
(อ่าน : 61145) 
ในฐานะของคนทำงานในอาชีพอิสระแบบ Freelance น่ะครับ ไม่ใช่พวก Site Line ... การที่ผมยังไม่ยอมย้ายขึ้นสู่ .NET เต็มๆสักกะที เพราะผมมองมาในแง่มุมทั้งนายจ้าง และ ลูกจ้าง (ก็ทำทุกๆอย่างในตัวคนเดียวนี่แหละครับ) การพัฒนาด้วย VB6 มันมีต้นทุนที่ต่ำกว่าทั้งสำหรับตัวผมเอง และ สำหรับผู้ว่าจ้าง ... ต่ำกว่าทั้งเรื่องของเวลา เงินทุน รวมไปถึงทรัพยากรระบบ ... เมื่อเปรียบเทียบกับ Output ที่ได้เหมือนกัน ... น่ะครับ ... นี่คือเหตุผลหลักๆ ... ดังนั้นการศึกษาเรื่องของเทคโนโลยี .NET ผมจึงมองมาที่เรื่องของ Web Services ซ่ะมากกว่า แม้ว่าทุกวันนี้ผมเองก็ยังนึกไม่ออกเลยว่าจะทำอะไรกับ Web Services ก็ตามที แต่เรื่องที่ผมคิดว่าน่าจะต้องเรียนรู้ในเวลานี้ ก็ควรจะเป็นเรื่องของ XML (eXtensive Markup Language) เอาไว้ก่อน ... แต่วันหนึ่งข้างหน้า ... หากยังนึกอะไรไม่ออกอีก ก็จะตั้งตัวเป็น อาจารย์ใบ้หวย ให้บริการผ่านเว็บเซอร์วิส กันไปเลย ... 55555+
เรียนรู้ XML กับ Visual Basic 6.0 ภาค 1
เรียนรู้ XML กับ Visual Basic 6.0 ภาค 2
เรียนรู้ XML กับ Visual Basic 6.0 ภาค 3 (แปลงร่าง XML ให้กลายเป็น HTML)
เรียนรู้ XML กับ Visual Basic 6.0 ภาค 4 (แจกโค้ดทำโปรแกรมดูทีวีออนไลน์ VB6+XML)
ดาวน์โหลด Source Code สำหรับ MS Visual Basic 2008
แนวคิดในการออกแบบ ... ไม่ได้ต่างไปจาก VB6 เลยครับพี่น้อง ... คือ อ่านเอกสาร XML เข้ามาด้วย DOM (Document Object Model) Component เข้ามายัดใส่ไว้ใน ListView Control ... (รอ) การเกิดเหตุการณ์ Mouse Double Click หรือ KeyPress ด้วยคีย์ Enter ... ส่งข้อมูล URL จาก ListView เอาไปให้กับ Windows Media Player เพื่อให้ทำงานได้ตามที่ต้องการ ... จบ
เริ่มต้นกระบวนการทำงาน

Design Time


การเพิ่ม Windows Media Player Component มาใช้งาน
บริเวณ Toolbox ... คลิ๊กเมาส์ขวาเลือก Choose Items ...


คลิ๊กเลือก Windows Media Player Component


จาก Toolbox คลิ๊กเลือก Windows Media Player แล้ววาดลงบนฟอร์ม


Run Time


Imports System.Xml

Public Class frmG2GdotNetTV
    Inherits System.Windows.Forms.Form

    ' คำนวณหาค่าขอบของฟอร์ม
    Private BorderWidth As Integer = (Me.Width - Me.ClientSize.Width) \ 2
    ' หาค่าความสูงของ TitleBar ... เพื่อใช้ประโยชน์ในการคำนวณหาระยะตำแหน่งของ Control ต่างๆบนฟอร์มได้
    Private TitlebarHeight As Integer = Me.Height - Me.ClientSize.Height - 2 * BorderWidth

    Private Sub frmG2GdotNetTV_Load( _
        ByVal sender As System.Object, _
        ByVal e As System.EventArgs) _
        Handles MyBase.Load

        Dim XMLDoc As XmlDocument  ' เอกสาร XML
        Dim NodeList As XmlNodeList    ' โหนดทั้งหมดที่มีอยู่ ก็คือ ทุกๆ Station นั่นเอง
        ' โหนดแต่ละตัว หรือ แต่ละ Station
        ' ตัวอย่างนี้ก็จะมี Element ดังนี้คือ ID, StationName, GroupName, Media
        Dim NodeElement As XmlNode

        ' ตัวแปร Item เพื่อใช้งานกับ ListView
        Dim LV As New ListViewItem

        ' สร้าง XML Document
        XMLDoc = New XmlDocument()

        ' โหลด Xml เข้ามา
        Dim StrAppPath As String = Environment.CurrentDirectory
        XMLDoc.Load(StrAppPath & "\g2gnettv.xml")
        ' สถานีออนไลน์จาก Web Server ... ข้อมูลสถานี หรือ รายการต่างๆจะถูก Update ณ ที่เดียวกัน
        'XMLDoc.Load("http://www.g2gnet.com/g2gnettv/g2gnettv.asp")

        Me.StartPosition = FormStartPosition.CenterScreen
        With lvwStation
            .Clear()
            .View = View.Details
            .FullRowSelect = True     ' แสดงแถบแสงในแถวที่ถูก Focus
            .HideSelection = False   ' ไม่ปิดแถบแสงในขณะที่ Listview ไม่ถูก Focus

            .Columns.Add("ID", 0)
            .Columns.Add("สถานี/รายการ", lvwStation.Width \ 2)
            .Columns.Add("กลุ่มรายการ", lvwStation.Width \ 2 - 20)
            ' ซ่อนข้อมูล URL ไม่ให้ผู้ใช้งานได้เห็น ... แอบๆๆๆๆ
            .Columns.Add("Media", 0)
        End With

' กำหนดโหนด NodeList = XMLDoc.SelectNodes("tvstation/channel/Station") ' วนรอบแต่ละโหนด - Station Node For Each NodeElement In NodeList ' อ่าน ID Element Dim ID As String = NodeElement.ChildNodes.Item(0).InnerText ' อ่าน StationName Element Dim StationName As String = NodeElement.ChildNodes.Item(1).InnerText ' อ่าน GroupName Element Dim GroupName As String = NodeElement.ChildNodes.Item(4).InnerText ' อ่าน Media Element - เป็นการเก็บค่า URL ครับ ... พี่น้อง Dim Media As String = NodeElement.ChildNodes.Item(2).InnerText ' จับยัดเข้าใส่ ListView ทีละ Column LV = lvwStation.Items.Add(ID) ' Index = 0 LV.SubItems.Add(StationName) ' Index = 1 LV.SubItems.Add(GroupName) ' Index = 2 LV.SubItems.Add(Media) ' Index = 3 ... ตัวนี้ต้องใช้ในการกำหนดค่า URL ให้กับ Windows Media Player Next Me.Text = "G2GdotNetTV On Line - www.g2gnet.com" ' ตั้งค่าให้กับ Windows Media Player WMP.enableContextMenu = False ' ไม่ให้ผู้ใช้กดเมาส์ขวา เพื่อเลือกเมนู WMP.stretchToFit = True ' ให้หน้าจอ Windows Media Player พอดีกับการปรับขนาดของฟอร์ม End Sub Private Sub lvwStation_KeyPress( _ ByVal sender As Object, _ ByVal e As System.Windows.Forms.KeyPressEventArgs) _ Handles lvwStation.KeyPress ' Chr(13) หรือ ก็คือการกด Enter นั่นเอง If e.KeyChar = Chr(13) Then Call GetURL() End Sub Private Sub lvwStation_MouseDoubleClick( _ ByVal sender As Object, _ ByVal e As System.Windows.Forms.MouseEventArgs) _ Handles lvwStation.MouseDoubleClick Call GetURL() End Sub ' อ่านค่าจาก Column ที่ 4 (หรือ Index = 3) ซึ่งเป็นค่า URL ใน ListView Private Sub GetURL() Dim LV As ListViewItem If Me.lvwStation.SelectedItems.Count > 0 Then LV = Me.lvwStation.SelectedItems(0) WMP.URL = LV.SubItems(3).Text Me.Text = "G2GdotNetTV On Line - www.g2gnet.com [" & LV.SubItems(1).Text & "]" End If End Sub Private Sub frmG2GdotNetTV_Resize( _ ByVal sender As Object, _ ByVal e As System.EventArgs) _ Handles Me.Resize ' เอาแบบบ้านๆตามสไตล์ของ M$ Visual Basic 6.0 ล่ะกันน่ะครับ ... พี่น้อง ... 55555+ With grpStation .Left = 0 .Top = Me.Height - grpStation.Height - TitlebarHeight - 8 .Width = Me.Width - 8 End With With WMP .Left = 0 .Top = 0 .Width = Me.Width .Height = Me.Height - grpStation.Height - TitlebarHeight - 8 End With With lvwStation .Left = 5 .Top = 15 .Width = grpStation.Width - 10 .Height = grpStation.Height - 22 End With End Sub End Class

จี ทู จี เน็ต ดอต คอม - g2gNet Dot Com
เลขทะเบียนพาณิชย์อิเล็กทรอนิกส์ 0407314800231
CopyLeft © 2004 - 2099 g2gNet.Com All rights reserved.
Email: [email protected] หรือ โทร. 08-6862-6560