[ boki @ 14.11.2004. 16:02 ] @
Pisem neki program za CallerID ali imam mnogo cudan bug. Da li sam ja corav, glup ili nesto trece...

Kada se poziva glavna forma izvrsava se ovo:
Code:
    Private Sub frmMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Activated
        MSComm1.CommPort = Port
        If AutoStart = True Then CidEnable()
    End Sub


Odatle se poziva procedura CidEnable koja izgleda ovako:

Code:
Public Sub CidEnable()
        On Error GoTo CommErrorMain
        cmdEnable.Enabled = False
        If MSComm1.PortOpen = False Then MSComm1.PortOpen = True
        MSComm1.Output = "ATZ0S82=76S42=3" & vbCr
        CidStatus = "Enableing"
        AddToLog("Enableing...")
        Timer1.Enabled = True
        Exit Sub
CommErrorMain:
        CommError(Err.Number)
    End Sub


Odatle u slicaju greske se poziva procedura CommError koja izgleda ovako:
Code:
    Public Sub CommError(ByVal errortohandle As Integer)
        Select Case errortohandle
            Case 0 : Resume Next
            Case 20 : Resume Next
            Case 8002
                cmdEnable.Enabled = True
                MsgBox("The Comm port" & Port & " does not exist", vbCritical)
                CidStatus = "Disabled"
                AddToLog("Disabled")
                Exit Sub
            Case 8005
                cmdEnable.Enabled = True
                MsgBox("The Comm port " & Port & " is in use.", vbCritical)
                CidStatus = "Disabled"
                AddToLog("Disabled")
            Case 8012
                MsgBox("netMod is in use.")
                cmdEnable.Enabled = True
                If MyBase.WindowState = vbNormal Then cmdEnable.Focus()
                CidStatus = "Disabled"
                AddToLog("Disabled")
                Exit Sub
                ' DODATI ZA AUTO ENABLE
            Case Else
                MsgBox("ERROR " & Err.Number & " : " & Err.Description, vbCritical)
                Exit Sub
        End Select
    End Sub


Tu recimo se izvrsi slucaj za gresku 8005 i izvrsavanje bi trebalo da stane ali umesto toga se ponovo izvrsava frmMain_Load i tako u endless loop. Ima li neko ideju o cemu se radi.
Ukoliko treba jos neki deo koda slobodno recite, program ce iovako biti open source.
[ havramm @ 14.11.2004. 20:53 ] @
Code:
Private Sub frmMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Activated

Da ne treba mozda MyBase.Load? Posto posle message box-a tvoja forma ponovo dobija fokus pa se izmedju ostalih ispaljuje i event Form.Activated, tako da se ponovo izvrsava kod unutar te metode...

prijateljski savet - koristi try...catch umesto on error goto...
[ boki @ 14.11.2004. 21:57 ] @
Da, da.. Ja sam se malo zabunio jer je tu bilo promene u odnosu na VB6.

Sad opet imam problem. event Load suvise rano ispaljuje, treba mi neki nacin da to izvrsim nakon sto se cela forma ucitala.
[ Deep|Blue @ 15.11.2004. 14:27 ] @
stavis taj kod u form_activated ali dodas proveru dal je to prvo okidanje tog eventa. inace form_activated se desava kad god se prebaci fokus na formu, a prvi put se desava kad zavrsi form_load event
[ boki @ 15.11.2004. 17:02 ] @
ok. Mislio sam da postoji neki event samo za to ali naravno moze i ovako.