Es soll via Tapi die Verbindung zum angeschlossenen Telefon erstellt werden.
Das Verbinden funktioniert, eben so das Raustelefonieren oder das Erkennen eines eingehenden Anrufs.
Eine Sache bereitet mir aber noch Kopfschmerzen:
Je nach Tapi-Status soll einem Label auf der Form ein bestimmter Text übergeben werden.
Nun habe ich mir dann folgendes gedacht:
Wenn ich die Verbindung zur Tapi aufbaue, übergebe ich ihm die Form.
Diese geht dann an eine globale Variable und damit greife ich dann auf das Label zu.
Das sieht dann so aus:
Wenn nun die Verbindung steht, sehe ich, dass das Label den Text auch erhalten hat.
Wenn ich jetzt aber ein Gespräch beginne oder ein Gespräch von außen reinkommt, soll sich der Status dementsprechend ändern.
Die Stati erhalte ich über das folgende Tapi-Event:
Dies ist die Funktion, die erkennt ob sich bei der Tapi etwas tut.
Dort löst er dann das folgende aus:
Dieses Sub enthält die verschiedenen erlaubten Event-Kennungen und setzt dementsprechend den Text des Labels.
Was mir nun totale Kopfschmerzen bereitet, ist, dass ich sowohl im Sub New als auch im Sub CallStateEvent den Label-Text mit g_frmMain.lblAktion_Value.Text setze, dieses "Ändern" aber nur im Sub New auch erkennbar ist...
Wieso ist das so, dass er das nicht überall ändet?
Wie kann ich noch den Label-Text ändern?
Das Verbinden funktioniert, eben so das Raustelefonieren oder das Erkennen eines eingehenden Anrufs.
Eine Sache bereitet mir aber noch Kopfschmerzen:
Je nach Tapi-Status soll einem Label auf der Form ein bestimmter Text übergeben werden.
Nun habe ich mir dann folgendes gedacht:
Wenn ich die Verbindung zur Tapi aufbaue, übergebe ich ihm die Form.
Diese geht dann an eine globale Variable und damit greife ich dann auf das Label zu.
Das sieht dann so aus:
Wenn nun die Verbindung steht, sehe ich, dass das Label den Text auch erhalten hat.
Wenn ich jetzt aber ein Gespräch beginne oder ein Gespräch von außen reinkommt, soll sich der Status dementsprechend ändern.
Die Stati erhalte ich über das folgende Tapi-Event:
VB.NET-Quellcode
- Private Sub oTAPI_Event(ByVal TapiEvent As TAPI3Lib.TAPI_EVENT, ByVal pEvent As Object) Handles oTAPI.Event
- Dim thAsyncCall As System.Threading.Thread
- Select Case TapiEvent
- Case TAPI_EVENT.TE_CALLSTATE 'Call State Changes
- ' assigning our sub's delegate to the thread
- thAsyncCall = New Threading.Thread(AddressOf CallStateEvent)
- ' passing the variable for the thread
- CallStateObject = CType(pEvent, ITCallStateEvent)
- ' starting the thread
- thAsyncCall.Start()
- End Select
- End Sub
Dies ist die Funktion, die erkennt ob sich bei der Tapi etwas tut.
Dort löst er dann das folgende aus:
VB.NET-Quellcode
- Private Sub CallStateEvent()
- ' here we should check to see call state and handle connects and disconnects
- Select Case CallStateObject.State
- Case CALL_STATE.CS_INPROGRESS
- g_frmMain.lblAktion_Value.Text = "laufendes Gespräch"
- Case CALL_STATE.CS_OFFERING
- Try
- g_frmMain.lblAktion_Value.Text = "eingehender Anruf"
- Catch ex As Exception
- End Try
- Case CALL_STATE.CS_DISCONNECTED
- g_frmMain.lblAktion_Value.Text = "wartend"
- End Select
- End Sub
Dieses Sub enthält die verschiedenen erlaubten Event-Kennungen und setzt dementsprechend den Text des Labels.
Was mir nun totale Kopfschmerzen bereitet, ist, dass ich sowohl im Sub New als auch im Sub CallStateEvent den Label-Text mit g_frmMain.lblAktion_Value.Text setze, dieses "Ändern" aber nur im Sub New auch erkennbar ist...
Wieso ist das so, dass er das nicht überall ändet?
Wie kann ich noch den Label-Text ändern?
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Don_Batisto“ ()