input fra COM-port, listbox hele tiden up-to-date
Hej x-perter :-)Håber I kan hjælpe mig et lille problem i VB.
Først en lille forklaring til hvordan programmet virker.
Der er x antal mikrofoner koblet til et mikrofonanlæg på COM-porten
I en listbox kan man skrive et deltager-navn ud for hver mikrofon.
Disse navne gemmes i et array.
I en ny listbox (kø-listbox) kan man se deltagerens navne efterhånden som de trykker sig ”ind” i køen.
Brugeren (af programmet) vælger hvornår en mikrofon skal aktiveres (ved tryk på en knap)
Når en mikrofon har været aktiv – fjernes den fra kø-listboxen..
Her er koden som gemmer navne i array efter hvem der trykker sig i kø (står hele tiden og ”lytter” på COM-porten)
Private Sub IO1_IOQueueEvent(ByVal NumCharsInputQue As Long, ByVal NumCharsOutputQue As Long)
If Left(Temp1, 2) = "R0" And (Mid(Temp1, 5, 1) = "A") Then 'Kontrol input data
K = Val(Mid(Temp1, 3, 2)) 'Mikrofon nummer K
L = Val(Mid(Temp1, 6, 1)) 'Køplads nummer L
D = L
E = D 'Variabel som gemmer kø-pladsen
F = "" 'Variablen til at slette kø-plads
F = D 'Variablen for kø-plads slettes igen
Dim Str As String
Str = NavnMic(K) ‘array hvor deltagere gemmes når de oprettes
’Her tilføjes deltagernavne i kølisten efterhånden som de trykker sig ind
List2.AddItem Str
List4.AddItem (List4.ListIndex + E + 1)
'Gennemløb køen
For W = 1 To 8
'Hvis den aktuelle plads er tom så
If Queue(W) = "" Then
'Tilføj mikrofonen
Queue(W) = Str
Str = “”
End If
Next W
Her er koden som bruger trykker på for at aktivere en mikrofon
'----------------------------------------------------------
'Koden til ’næste deltager’ knappen
'----------------------------------------------------------
Private Sub cmdNext_Click()
IO1.WriteString "P067" & vbCr
'Debug.Print "Mikrofon aktiv!"
Dim I As Integer
'Flyt alle andre mikrofoner en plads frem
For I = 0 To 7
Queue(I) = Queue(I + 1)
Next I
'Frigør den bagerste plads i køen.
Queue(8) = ""
Dim X As Integer
List2.Clear
For J = 1 To 8
List2.AddItem Queue(J)
Next J
End Sub
'----------------------------------------------------------
Selvom en mikrofon allerede har været aktiv – kan deltageren dog godt vælge at stille sig i kø igen, og det er her der går ged i den..
Navnet på deltageren dukker først op et godt stykke nede i listboxen for eksempel sådan her
deltager2
deltager3
deltager4
..(tomme pladser)
..(tomme pladser)
..(tomme pladser)
deltager1
Jeg er godt klar over at det skyldes mit array som har et vist antal pladser (Der kan p.ga. hardwarebegrænsninger maksimalt stå 9 mikrofoner i kø ad gangen)
Jeg har prøvet diverse krumspring med listindex m.m. – dog uden held
Er der nogen som gode forslag til hvordan jeg løser dette problem.??
