186 lines
8.0 KiB
VB.net
186 lines
8.0 KiB
VB.net
|
|
Public Class MusicArrangement
|
|||
|
|
Public basicClass As DeviceObjectClasses
|
|||
|
|
Private gMUSICdic As Dictionary(Of String, List(Of String))
|
|||
|
|
Private gcMUSICdic As Dictionary(Of String, List(Of String))
|
|||
|
|
Public GmusicVal As String = String.Empty
|
|||
|
|
Public G_input As String
|
|||
|
|
Private Sub MusicArrangement_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
|||
|
|
gcMUSICdic = New Dictionary(Of String, List(Of String))
|
|||
|
|
gMUSICdic = New Dictionary(Of String, List(Of String))
|
|||
|
|
ComboBox1.Items.Clear()
|
|||
|
|
For Each basicClassnode In basicClass.DeviceClass
|
|||
|
|
If basicClassnode.Name.Equals("MUSIC") Then
|
|||
|
|
For Each basicClassnodeMUSIC In basicClassnode.Methods
|
|||
|
|
If basicClassnodeMUSIC.Params.Count >= 3 And basicClassnodeMUSIC.Name.IndexOf("播放") = 0 Then
|
|||
|
|
ComboBox1.Items.Add(basicClassnodeMUSIC.Params(1).DataRange)
|
|||
|
|
Dim li As New List(Of String)
|
|||
|
|
li.AddRange(basicClassnodeMUSIC.Params(0).DataRange.Split(","))
|
|||
|
|
gcMUSICdic.Add(basicClassnodeMUSIC.Params(1).DataRange, li)
|
|||
|
|
|
|||
|
|
Dim lic As New List(Of String)
|
|||
|
|
|
|||
|
|
|
|||
|
|
Select Case basicClassnodeMUSIC.Params(2).DataType
|
|||
|
|
Case "List"
|
|||
|
|
lic.AddRange(basicClassnodeMUSIC.Params(2).DataRange.Split(","))
|
|||
|
|
|
|||
|
|
Case "Integer"
|
|||
|
|
Dim dowmint As Integer = -1
|
|||
|
|
Dim upint As Integer = -1
|
|||
|
|
Dim intbuf() As String = basicClassnodeMUSIC.Params(2).DataRange.Split(",")
|
|||
|
|
Integer.TryParse(intbuf(0), dowmint)
|
|||
|
|
Integer.TryParse(intbuf(1), upint)
|
|||
|
|
If dowmint = -1 Or upint = -1 Then
|
|||
|
|
lic.Add(1)
|
|||
|
|
Else
|
|||
|
|
For i = dowmint To upint
|
|||
|
|
lic.Add(i)
|
|||
|
|
Next
|
|||
|
|
End If
|
|||
|
|
|
|||
|
|
End Select
|
|||
|
|
gMUSICdic.Add(basicClassnodeMUSIC.Params(1).DataRange, lic)
|
|||
|
|
End If
|
|||
|
|
Next
|
|||
|
|
End If
|
|||
|
|
Next
|
|||
|
|
ComboBox1.SelectedIndex = 0
|
|||
|
|
LoadInputText(G_input)
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
Private Sub LoadInputText(inputstr As String)
|
|||
|
|
If String.IsNullOrEmpty(inputstr) Then Return
|
|||
|
|
|
|||
|
|
Dim buf() As String = inputstr.Split(",")
|
|||
|
|
If buf.Length > 0 Then
|
|||
|
|
For i As Integer = 0 To ComboBox1.Items.Count - 1
|
|||
|
|
If ComboBox1.Items(i).ToString.Contains(buf(0)) Then
|
|||
|
|
ComboBox1.SelectedIndex = i
|
|||
|
|
Exit For
|
|||
|
|
End If
|
|||
|
|
Next
|
|||
|
|
End If
|
|||
|
|
If buf.Length > 1 Then
|
|||
|
|
For i As Integer = 0 To ComboBox3.Items.Count - 1
|
|||
|
|
If ComboBox3.Items(i).ToString.Contains(buf(1)) Then
|
|||
|
|
ComboBox3.SelectedIndex = i
|
|||
|
|
Exit For
|
|||
|
|
End If
|
|||
|
|
Next
|
|||
|
|
End If
|
|||
|
|
If buf.Length > 2 Then
|
|||
|
|
For i As Integer = 0 To ComboBox2.Items.Count - 1
|
|||
|
|
If ComboBox2.Items(i).ToString.Contains(buf(2)) Then
|
|||
|
|
ComboBox2.SelectedIndex = i
|
|||
|
|
|
|||
|
|
Exit For
|
|||
|
|
End If
|
|||
|
|
Next
|
|||
|
|
End If
|
|||
|
|
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
Public Shared Function CheckDataIsOk(datastr As String, gbasicClass As DeviceObjectClasses) As Boolean
|
|||
|
|
If String.IsNullOrEmpty(datastr) Then Return True
|
|||
|
|
Dim buf() As String = datastr.Split(",")
|
|||
|
|
If buf.Length <> 3 Then Return False
|
|||
|
|
Dim intbuf(2) As Integer
|
|||
|
|
If Not (Integer.TryParse(buf(0), intbuf(0)) And Integer.TryParse(buf(1), intbuf(1)) And Integer.TryParse(buf(2), intbuf(2))) Then Return False
|
|||
|
|
|
|||
|
|
For Each basicClassnode In gbasicClass.DeviceClass
|
|||
|
|
If basicClassnode.Name.Equals("MUSIC") Then
|
|||
|
|
For Each basicClassnodeMUSIC In basicClassnode.Methods
|
|||
|
|
If basicClassnodeMUSIC.Params.Count >= 3 And basicClassnodeMUSIC.Name.IndexOf("播放") = 0 Then
|
|||
|
|
|
|||
|
|
|
|||
|
|
If basicClassnodeMUSIC.Params(1).DataRange.IndexOf(intbuf(0).ToString) = 0 Then
|
|||
|
|
Dim abuf() As String = basicClassnodeMUSIC.Params(0).DataRange.Split(",")
|
|||
|
|
For Each astr In abuf
|
|||
|
|
If astr.IndexOf(intbuf(1).ToString) = 0 Then
|
|||
|
|
Select Case basicClassnodeMUSIC.Params(2).DataType
|
|||
|
|
Case "List"
|
|||
|
|
Dim aintbuf() As String = basicClassnodeMUSIC.Params(2).DataRange.Split(",")
|
|||
|
|
For Each bbuf In aintbuf
|
|||
|
|
If bbuf.IndexOf(intbuf(0).ToString) = 0 Then Return True
|
|||
|
|
Next
|
|||
|
|
Return False
|
|||
|
|
|
|||
|
|
Case "Integer"
|
|||
|
|
Dim aintbuf() As String = basicClassnodeMUSIC.Params(2).DataRange.Split(",")
|
|||
|
|
Dim aup, adown As Integer
|
|||
|
|
If Not (Integer.TryParse(aintbuf(0), adown) And Integer.TryParse(aintbuf(1), aup)) Then Return False
|
|||
|
|
|
|||
|
|
If adown <= intbuf(2) And intbuf(2) <= aup Then
|
|||
|
|
Return True
|
|||
|
|
Else
|
|||
|
|
Return False
|
|||
|
|
End If
|
|||
|
|
|
|||
|
|
End Select
|
|||
|
|
|
|||
|
|
End If
|
|||
|
|
Next
|
|||
|
|
|
|||
|
|
Return False
|
|||
|
|
End If
|
|||
|
|
|
|||
|
|
End If
|
|||
|
|
Next
|
|||
|
|
End If
|
|||
|
|
Next
|
|||
|
|
Return False
|
|||
|
|
End Function
|
|||
|
|
|
|||
|
|
|
|||
|
|
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
|
|||
|
|
Me.DialogResult = System.Windows.Forms.DialogResult.OK
|
|||
|
|
Me.Close()
|
|||
|
|
Return
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged
|
|||
|
|
ComboBox3.Items.Clear()
|
|||
|
|
ComboBox3.Items.AddRange(gcMUSICdic.Item(ComboBox1.Text).ToArray)
|
|||
|
|
ComboBox3.SelectedIndex = 0
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
Private Sub ComboBox3_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox3.SelectedIndexChanged
|
|||
|
|
ComboBox2.Items.Clear()
|
|||
|
|
ComboBox2.Items.AddRange(gMUSICdic.Item(ComboBox1.Text).ToArray)
|
|||
|
|
ComboBox2.SelectedIndex = 0
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
Private Sub ComboBox2_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox2.SelectedIndexChanged
|
|||
|
|
Dim strbuf() As String = ComboBox1.Text.Split(" ")
|
|||
|
|
Dim name As String = String.Empty
|
|||
|
|
Dim kval As String = String.Empty
|
|||
|
|
If strbuf.Length > 1 Then
|
|||
|
|
name = $"{name}{ strbuf(0).Trim},"
|
|||
|
|
kval = $"{kval}{ strbuf(1).Trim},"
|
|||
|
|
Else
|
|||
|
|
name = $"{name}{ strbuf(0).Trim},"
|
|||
|
|
kval = $"{kval}{ strbuf(0).Trim}"
|
|||
|
|
End If
|
|||
|
|
strbuf = ComboBox3.Text.Split(" ")
|
|||
|
|
If strbuf.Length > 1 Then
|
|||
|
|
name = $"{name}{ strbuf(0).Trim},"
|
|||
|
|
kval = $"{kval}{ strbuf(1).Trim},"
|
|||
|
|
|
|||
|
|
Else
|
|||
|
|
name = $"{name}{ strbuf(0).Trim},"
|
|||
|
|
kval = $"{kval}{ strbuf(0).Trim}"
|
|||
|
|
End If
|
|||
|
|
strbuf = ComboBox2.Text.Split(" ")
|
|||
|
|
If strbuf.Length > 1 Then
|
|||
|
|
name = $"{name}{ strbuf(0).Trim}"
|
|||
|
|
kval = $"{kval}{ strbuf(1).Trim}"
|
|||
|
|
Else
|
|||
|
|
name = $"{name}{ strbuf(0).Trim}"
|
|||
|
|
kval = $"{kval}{ strbuf(0).Trim}"
|
|||
|
|
|
|||
|
|
End If
|
|||
|
|
|
|||
|
|
TextBox1.Text = $"{kval }{vbCrLf }({name})"
|
|||
|
|
GmusicVal = name
|
|||
|
|
End Sub
|
|||
|
|
End Class
|