webForumDet fria alternativet

Statusbar och muspekare uppdateras inte...

.NET

6 svar · 253 visningar · startad av ElMaco

Medlem sedan juni 2000161 inlägg
Frågan#1

Jag har ett formulär (frmMain) som utgör det huvudsakliga användargränssnittet. För att skilja GUI-kod från annan kod har jag en separat modul för detta (clientFunctions).

Så länge koden låg i frmMain så kunde jag ändra text i statusbar, ändra text på knappar i toobar och ändra ikon på muspekaren, men så fort jag lade ut koden i en modul så fungerar inte detta längre. Jag får inget fel, men det fungerar inte bara. Hur ska jag göra?

Jag har försökt att skriva en setStatus-funktion i frmMain som kan anropas från clientFunctions, men det verkar omständigt (och funkade inte heller förresten...)

Här är koden i clientFunctions:

Sub doLoginUser()

    If frmMain.Toolbar1.Buttons(1).Caption = "Anslut" Then
                
            '---Skickar förfrågan om att logga in som extern användare
            strXMLcf = "<Container>"
            ...
            strXMLcf = strXMLcf & "</Container>"
            
            oXMLcf.loadXML (strXMLcf)
            frmMain.sbStatusBar.Panels(1).Text = "Ansluter till server..."
            
            MousePointer = vbHourglass
            Set oXMLcf = SOAPInterface.sendRequest("LoginUser", oXMLcf)
            MousePointer = vbNormal
    
       If InStr(1, oXMLcf.xml, "<faultcode>", 1) Then
           
            ...

        Else
             
            frmMain.Toolbar1.Buttons(1).Caption = "Koppla ner"
            frmMain.sbStatusBar.Panels(1).Text = "Ansluten till server."
        
        End If
        
        
    ElseIf frmMain.Toolbar1.Buttons(1).Caption = "Koppla ner" Then
        frmMain.Toolbar1.Buttons(1).Caption = "Anslut"
        frmMain.sbStatusBar.Panels(1).Text = "Kopplar ner anslutning"
        MousePointer = vbHourglass
        frmMain.sbStatusBar.Panels(1).Text = "Nedkopplad"
        MousePointer = vbNormal
    End If
End Sub

Varför uppdateras inte muspekare, text på knappar eller statusttext?

/M.

Medlem sedan juni 20022 599 inlägg
#2

Och när du single-steppar genom doLoginUser så verkar allt OK, och du är hela tiden precis där du borde vara i if-satserna? Sen borde du kanske även skriva frmMain.MousePointer = .. iom att du inte befinner dig i formuläret.

Medlem sedan juni 2000161 inlägg
#3

Ja, jag lade till en option explicit och då märkte jag muspekaren. Allt fungerar som det skall med avseende på IF-satserna. Jag har även testat att lägga till applikationsnamnet framför formulären.

Medlem sedan juni 20022 599 inlägg
#4

Har du testat att forcera omritning efter varje tilldelning: frmMain.Toolbar1.refresh, frmMain.sbStatusBar.refresh osv ..?

Medlem sedan juni 2000161 inlägg
#5

yeap

Medlem sedan juni 20022 599 inlägg
#6

Ja .. Jag har ingen aning. Jag skulle påstå att det du säger känns rätt omöjligt. Felet måste ligga nån annanstans. Faktiskt ..

Har du provat att remma bort själva soap-anropet?

Medlem sedan juni 2000161 inlägg
#7

Jag har testat att göra ett projekt med bara en statusbar och en modul samt en knapp som anropar funktionen i modulen och då fungerar det. Så det ska egentligen vara ganska straight forward...

255 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)