Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: [VB6] "Variable not defined"

Kulma [03.12.2005 15:52:10]

#

Mitä tuo tarkoittaa? Toi tulee ja VB6 valittaa kohtaa "strFilter" (3. rivi koodista)

Private Sub cmdOpen_Click()
 On Error GoTo dbErrHandler
    strfilter = "Tekstitiedostot (*.txt)|*.txt|" & _
                "Kaikki tiedostot (*.*)|*.*"

    cdmain.Filter = strfilter


    cdmain.ShowOpen

    If cdmain.FileName <> "" Then

        strfilename = cdmain.FileName

        filehandle = FreeFile
        Open strfilename For Input As #filehandle
        MousePointer = vbHourglass

        Do While Not EOF(filehandle)

            Line Input #filehandle, strbuffer
            strText = strText & strbuffer & vbCrLf
        Loop

        MousePointer = vbDefault

        Close #filehandle
        Text1.Text = strText

    End If

    Exit Sub
dbErrHandler:
Exit Sub
End Sub

Juice [03.12.2005 16:13:11]

#

Kokeilepa lisätä rivi Dim strfilter As String tuon on error goto -kohdan alle ;)
Ainakin ilmo viittaa vahvasti siihen, ettei muuttujaa todellakaan ole määritelty.

Kulma [03.12.2005 17:54:24]

#

Nyt se kohta alko toimia, mutta nyt se valittaa toisesta kohdasta (1: "For cCode " 1 To len(xString)") sitä samaa ja jos laitan siihenkin "error goto" - kohdan alle "Dim cCode as String" niin sit se valittaa "Type mismatch".

1:

Private Function Converter(xString As String) As String
    On Error GoTo FinaliseError
    For cCode = 1 To Len(xString)
    Dim conv As String
        conv = conv + (100 / Len(xString))
        PgrLabel.Caption = CLng(conv) & "%"
        Image1.Width = (Picture1.Width / Len(xString)) * conv * (Len(xString) / 100)
        Converter = Converter + Chr(FindOppAsc(Asc(Mid(xString, CInt(cCode), 1))))
    Next cCode
    Form_Load
    hidehide.Enabled = True
    Exit Function
FinaliseError:
    hidehide.Enabled = True
    MsgBox "Error, the string that was meant be be coded / decoded was too long.", vbCritical, "Error"
End Function

Sit mulla on toinenkin virhe "Object already loaded" kohdassa 2 (Alla: "UDPListen.LocalPort = 27976"). Ja jos teen siitä .exen ja yritän käyttää tulee joskus joku "Broadcast jne." virhe.

2.

Private Sub Form_Load()
App.TaskVisible = True
mnu_User.Visible = False
UDPListen.LocalPort = 27976
broadcast.RemotePort = 27976
broadcast.RemoteHost = "255.255.255.255"
UDPListen.Bind
broadcast.Bind

CurrentBlock = -1

Username = modChat.GetWindowsUser '

If Username = "" Then
    Username = modChat.GetWindowsUser
    End If
If Username = "" Then Username = "Anonymous" ' Still no user ? Ok...It's anonymous :P
MyIcon = "user" '
SetActivity "U- D-" '
mnu_waketype_Click 1 '
Set MySysTray = New cSystray
MySysTray.Initialize Me.hwnd, Me.Icon, "Network Chat"
MySysTray.ShowIcon

setSystrayActivity NoActivity

status.Panels("ip").Text = MyIP

chat.Text = ""
GetSystemInfo
Logon
End Sub

Hannu [03.12.2005 19:15:47]

#

No tohon ykköskohtaan ainakin:
Ei sitä cCode:a voi määritellä merkkijonoksi (string),
vaan se pitää määritellä kokonaisluvuksi, koska talletat siihen numeroita. Eli näin:
Dim cCode as integer

BadSource [07.12.2005 09:51:05]

#

Tuo virheilmoitus (Variable not defined) johtuu siitä, että koodisi alussa käytät valintaa...

Option Explicit

...jolla pakotetaan esittelemään muuttujat ennen niiden käyttöä, muttet sitten esittelekkään niitä (Dim -hässäkkä).

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta