Hej! Hej. Skulle Skipa Unload me och End: Fungerade inte, fortfarande problem. Har du provat att ta bort koden i unload eventet? Vad gör subSetLight? Denna kod hör till ett eget skrivet program till ett eget kopplat Laserdome. subSetLight sätter lysdioderna på baserna. Jag löste det själv. Det var ett par MSComm kontroller som ställde till det. Förut var dom ritade på formuläret, nu är dom dynamiskt laddade. Inga problem längr! Tycker att det ser lite fel ut med OR Pelle, är ju bättre att slå samman flagorna binärt med or än med plus. Tror till och med microsoft rekomenderar det. Så det är absoulit inget fel med det. OR kan inte ersättas av plus: >OR kan inte ersättas av plus:UnLoad hänger Datorn (BSOD) [LÖST]
Jag har ett hel-sjukt problem!
Läs följande kod:
<code>
Private Sub cmdStopPolling_Click()
bolListen = False
base1.PortOpen = False
base2.PortOpen = False
subValidateMain
End Sub
Private Sub Form_Unload(Cancel As Integer)
If (bolListen = False) Then
If (MsgBox("Do you really want to quit?", vbYesNo Or vbDefaultButton2 Or vbQuestion, "Quit?") = vbYes) Then
subSetLight 0, 0, 0, 0
Unload frmAddPlayer
Unload frmConsole
Unload frmSplash
Unload frmInfo
Unload Me
End
Else
Cancel = 1
End If
Else
MsgBox "You can't close this program without pressing the 'Stop Listen' button first", vbInformation, "Failure"
Cancel = 1
End If
End Sub
</code>
Den fungerar inte...
Om bolListen = True så kommer en msgbox upp och så, perfekt. (Används för att programmet inte ska gå att avsluta utan att man stänger av en evighets loop)
Om bolListen = False så kommer BSOD dvs. Den blå skärmen upp. Ett undantagsfel. Förklara det för mig! Jag har inte en aning! Om jag sätter en breakpoint på raden:
Private Sub Form_Unload(Cancel As Integer)
så kommer ändå skärmen upp, men den stannar ifall bolListen = True
???
Hjälp! Det tar sådan tid att testköra programmet om jag måste starta om Windows för varje nytt test...
Mvh/
Oskar JohanssonSv: UnLoad hänger Datorn (BSOD)
Helt fel är nog inte att läsa denna tråd:
[Vilka forms är laddade? LÖST]
Vet inte om det är lösningen på ditt problem men kanske...
//fredda
EDIT:
Unload Me i Form_Unload verkar lite farlig...Sv: UnLoad hänger Datorn (BSOD)
<code>
Private Sub cmdStopPolling_Click()
bolListen = False
base1.PortOpen = False
base2.PortOpen = False
subValidateMain
End Sub
Private Sub Form_Unload(Cancel As Integer)
If bolListen = False Then
Select Case MsgBox("Do you really want to quit?", vbYesNo Or vbDefaultButton2 Or vbQuestion, "Quit?")
Case vbYes
subSetLight 0, 0, 0, 0
Unload frmAddPlayer
Unload frmConsole
Unload frmSplash
Unload frmInfo
Case Else
Cancel = True
End Select
Else
MsgBox "You can't close this program without pressing the 'Stop Listen' button first", vbInformation, "Failure"
Cancel = True
End If
End Sub
</code>Sv: UnLoad hänger Datorn (BSOD)
Datorn hänger sig som bara den.
Du vet, den blåa skärmen...Sv: UnLoad hänger Datorn (BSOD)
Sv: UnLoad hänger Datorn (BSOD)
Vill helst inte ta bort unload eventet pga att jag har flera fönster, samt att Det ska helst komma upp en frågaSv: UnLoad hänger Datorn (BSOD) [LÖST]
Mvh/
Oskar Johanss
Tack för att ni försökte! (Jag kom på en hel del andra bra idéer under tiden...)Sv: UnLoad hänger Datorn (BSOD) [LÖST]
MsgBox("Do you really want to quit?", vbYesNo Or vbDefaultButton2 Or vbQuestion,
Borde vara:
MsgBox("Do you really want to quit?", vbYesNo + vbDefaultButton2 + vbQuestion)
Hälsningar
/PelleSv: UnLoad hänger Datorn (BSOD) [LÖST]
;O)Sv: UnLoad hänger Datorn (BSOD) [LÖST]
Helt olika funktioner har dom.
OR används:
1001
1100
===
1101
+ används
123
434
==
557
Undersök det binärt med calc.exe i avancerat läge...Sv: UnLoad hänger Datorn (BSOD) [LÖST]
>Helt olika funktioner har dom.
Generellt är det så, men i detta fallet när man slår ihop flaggor fungerar det med både + och or. En fördel med OR när man pysslar med flaggor är att om du skulle råka få med samma flagga flera gånger blir det jättefel med +, men det fungerar utmärkt med OR.
/Johan