' Run-time error '91': ' Object variable or With block variable not set ' ' '>>> HTML CONTROL <<< ' ' ' ' ' 'Whisper Control ' ' '
' ' ' Option Explicit Public PvtWindows() As New frmWhisper Public PvtWindowState() As WichPvt Type WichPvt name As String deleted As Boolean End Type Function FreePvtIndex() As Integer On Error GoTo Errhandler Dim i As Integer Dim ArrayCount As Integer ArrayCount = UBound(PvtWindows) For i = 1 To ArrayCount If PvtWindowState(i).deleted Then FreePvtIndex = i PvtWindowState(i).deleted = False Exit Function End If Next ReDim Preserve PvtWindows(ArrayCount + 1) ReDim Preserve PvtWindowState(ArrayCount + 1) FreePvtIndex = UBound(PvtWindows) Exit Function Errhandler: If VBA.Information.Err.Number = 9 Then Resume Next ElseIf VBA.Information.Err.Number > 400 Then Resume Next Else MsgBox "Error: " & vbCrLf & VBA.Information.Err.Description & vbCrLf & "Source: " & VBA.Information.Err.Source & vbCrLf & "Number: " & VBA.Information.Err.Number End If End Function Function GetPvtIndex(sNick As String) As Integer Dim i As Integer Dim ArrayCount As Integer ArrayCount = UBound(PvtWindows) For i = 1 To ArrayCount If Not PvtWindowState(i).deleted Then If PvtWindows(i).Caption = sNick Then GetPvtIndex = i Exit For End If End If Next End Function Function DoesPvtExists(sNick As String) As Boolean On Error GoTo Errhandler Dim i As Integer Dim ArrayCount As Integer DoesPvtExists = False ArrayCount = UBound(PvtWindows) For i = 1 To ArrayCount If Not PvtWindowState(i).deleted Then If PvtWindows(i).Caption = sNick Then DoesPvtExists = True Exit For End If End If Next Exit Function Errhandler: If VBA.Information.Err = 9 Then Resume Next End If End Function Public Sub UserWhisper(tempNick As String, Optional sMsgs As String) Dim PvtStart As String, PvtEnd As String, PvtIndex As Integer If tempNick = sMyNick Then Exit Sub If sMsgs <> "" Then sMsgs = Mid(sMsgs, 3) sMsgs = Mid(sMsgs, InStr(1, sMsgs, ":", 1) + 1) sMsgs = Replace(sMsgs, vbCrLf, "") End If If Not DoesPvtExists(tempNick) Then PvtIndex = FreePvtIndex Call PvtWindows(PvtIndex).SetEventObject(frmMain) PvtWindows(PvtIndex).Tag = PvtIndex 'test solution start Dim sApppChanger As String sApppChanger = "file:///" & Replace$(App.Path, "\", "/") & "/whisper.html" 'test solution end PvtWindows(PvtIndex).IEtxtWhisper.Navigate sApppChanger Call PvtWindows(PvtIndex).Chatter(tempNick) If sMsgs <> "" Then PvtStart = "" If tempNick <> "" Then PvtStart = "" & sMyNick & ": " End If PvtEnd = "" PvtWindows(PvtIndex).IEtxtWhisper.Document.getElementById("chatwhisper").innerHTML = PvtWindows(PvtIndex).IEtxtWhisper.Document.getElementById("chatwhisper").innerHTML & PvtStart & sMsgs & PvtEnd & "
" PvtWindows(PvtIndex).IEtxtWhisper.Document.ParentWindow.ScrollBy 0, 50 End If PvtWindows(PvtIndex).Show 'vbModal, Me PvtWindowState(PvtIndex).name = tempNick PvtWindows(PvtIndex).WindowState = vbNormal Else PvtWindows(GetPvtIndex(tempNick)).WindowState = vbNormal If sMsgs <> "" Then PvtStart = "" If tempNick <> "" Then PvtStart = "" & sMyNick & ": " End If PvtEnd = "" PvtWindows(PvtIndex).IEtxtWhisper.getElementById("chatwhisper").innerHTML = PvtWindows(PvtIndex).IEtxtWhisper.Document.getElementById("chatwhisper").innerHTML & PvtStart & sMsgs & PvtEnd & "
" PvtWindows(PvtIndex).IEtxtWhisper.getElementById("chatwhisper").innerHTML End If End If End Sub