"Unzulässige Verwendung von Null" bei accHitTest

27/10/2009 - 11:16 von Björn Benatzky | Report spam
Hallo zusammen,

ich habe folgendes Problem:
Über die folgende Funktion lasse ich mir als Steuerelement-Tip-Text jeweils
den Eintrag des Listenfeldes anzeigen, über dem sich gerade der Mauszeiger
befindet.

********************************************************
Private Declare Function GetCursorPos _
Lib "user32.dll" ( _
ByRef lpPoint As POINTAPI _
) As Long

Private Sub lstCategories_MouseMove(Button As Integer, Shift As Integer, X
As Single, Y As Single)
1000 On Error GoTo Err_Procedure

Dim pt As POINTAPI
Dim lng1 As Long
Dim lng2 As Long

1010 GetCursorPos pt
1020 lng1 = Me.lstCategories.accHitTest(pt.X, pt.Y) - 1
1030 If lng1 > -1 And lng1 <> lng2 Then
1040 Me.lstCategories.ControlTipText = Me.lstCategories.Column(0, lng1)
1050 lng2 = lng1
1060 End If

1070 Exit_Procedure:
1080 Exit Sub

1090 Err_Procedure:
1100 ErrorHandler Me.Module.Name, "lstCategories_MouseMove"
1110 Resume Exit_Procedure

End Sub
********************************************************

Die Funktion làuft soweit auch ganz wunderbar, aber leider nicht immer.
Manchmal bekomme ich in Zeile 1020 den Fehler "Unzulàssige Verwendung von
Null". Ich kann den Fehler nicht nachstellen und auch nicht nachvollziehen,
wann und wieso er auftritt. Kann jemand helfen?

Vielen Dank im Voraus.
LG Björn
 

Lesen sie die antworten

#1 Sascha Trowitzsch
27/10/2009 - 11:58 | Warnen spam
Hi, Björn,

Björn Benatzky wrote:
Hallo zusammen,

ich habe folgendes Problem:
Über die folgende Funktion lasse ich mir als Steuerelement-Tip-Text
jeweils den Eintrag des Listenfeldes anzeigen, über dem sich gerade
der Mauszeiger befindet.

********************************************************
Private Declare Function GetCursorPos _
Lib "user32.dll" ( _
ByRef lpPoint As POINTAPI _
) As Long

Private Sub lstCategories_MouseMove(Button As Integer, Shift As
Integer, X As Single, Y As Single)
1000 On Error GoTo Err_Procedure

Dim pt As POINTAPI
Dim lng1 As Long
Dim lng2 As Long

1010 GetCursorPos pt
1020 lng1 = Me.lstCategories.accHitTest(pt.X, pt.Y) - 1
1030 If lng1 > -1 And lng1 <> lng2 Then
1040 Me.lstCategories.ControlTipText = Me.lstCategories.Column(0,
lng1) 1050 lng2 = lng1
1060 End If

1070 Exit_Procedure:
1080 Exit Sub

1090 Err_Procedure:
1100 ErrorHandler Me.Module.Name, "lstCategories_MouseMove"
1110 Resume Exit_Procedure

End Sub
********************************************************

Die Funktion làuft soweit auch ganz wunderbar, aber leider nicht
immer. Manchmal bekomme ich in Zeile 1020 den Fehler "Unzulàssige
Verwendung von Null". Ich kann den Fehler nicht nachstellen und auch
nicht nachvollziehen, wann und wieso er auftritt. Kann jemand helfen?



So, wie ich das im Code sehe, kann für die Fehlermeldng eigentlich nur der
Ausdruck
.TipText = Me.lstCategories.Column(0,lng1)
verantwortlich sein.
Da wird wohl im Listenfeld eine Zelle nicht gefüllt sein und Null kann man
einem String nicht zuweisen.

Ciao, Sascha

Ähnliche fragen