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 |