Hejsa NG
Jeg har aldrig rørt Visual Basic før (normalt koder jeg i Delphi og C/C++)
og er nu blevet bedt om at afslutte et program som skal fremvises på CEBIT
(for at illustrere at jeg er presset :), så jeg håber der er nogen der kan
hjælpe mig.
Det skal lige siges at mit udviklingsværktøj er Microsoft eMbedded Visual
Basic 3 og programmet skal køre på en Compaq i-PAQ.
Problemstillingen:
Jeg har 2 listviews hvor jeg gerne vil flytte elementer fra det ene
listview til det andet. Det har jeg heller ingen problemer med før jeg
"rammer ved siden af". Hvis jeg ikke har markeret noget i det listview jeg
prøver på at flytte fra, får jeg en gevaldig fejl, og det har ikke været
mig muligt at håndtere dette. Functionen ser således ud:
lvMaterials (listview jeg ønsker at flytte fra)
lvBom(listview jeg ønsker at flytte til)
Private Sub btnAdd_Click()
Dim fRecord As ListItem
Dim i, j
Dim ac As Integer
Dim isFound As Boolean
isFound = False
For i = 1 To lvBom.ListItems.Count
If {checker om den findes i forvejen} Then
(does something)
isFound = True
End If
Next
If Not isFound Then
Set fRecord = lvBom.ListItems.Add(, , lvMaterials.SelectedItem.Text)
fRecord.SubItems(1) = cbQty.Text
End If
End Sub
Problemet opstår da lvMaterials.SelectedItem er nil, men det kan jeg
umiddelbart ikke checke på. Jeg kan heller ikke checke på selve
lvMaterials.SelectedItem.Text da lvMaterials.SelectedItem ikke findes.
Jeg har prøvet at finde noget om errorhandling på nettet og i den
medfølgende, meget mangelfulde, online hjælp, men forgæves. Jeg fandt On
Error GoTo 0 (som er den eneste man kan bruge i Embedded VB) men det kan
jeg heller ikke få til at virke. jeg tænkte at hvis jeg ikke kunne få lov
til at checke på variablerne, kunne jeg bare fange fejlen og lade
programmet fortsætte uden at brugeren opdagede noget, men sådan skulle det
ikke være.
Hvad kan jeg checke på eller hvordan håndterer jeg den error der opstår?
På forhånd tusind tak for hjælpen
Jesper Nielsen
Alta A/S
www.alta.dk