Hallo,
ich habe in einer Userform ein Bild. (z.b. 300 x 200 px groß)
ich habe ein Array in dem bis zu 80 werte stehen. z.b. 100
wenn ich mit der maus über das bild fahre wird abgeglichen ob der mauszeiger weniger als 10px von einem der werte aus dem array entfernt ist Betrag(X-100)<10 dann soll der mauszeiger in eine Hand umgeformt werden.
Userform1.Image1.MousePointer = 99
Userform1.Image1.MouseIcon = LoadPicture(ThisWorkbook.Path & Application.PathSeparator & "Hand. _
ico"
sonst wird er auf Default gestellt
Userform1.Image1.MousePointer=0
Das Funktioniert alles sehr gut. Jedoch nach einem Klick komischer weise nicht mehr
Der Mauszeiger flimmert in den bereichen wo die hand sein sollte immer zwischen hand und default umher. ich würde die datei sehr gerne hochladen, jedoch ist es meine Facharbeit und ich denke kaum dass ich das darf.
Hier der vollständige code, der jedoch ohne Zusammenhänge meiner Ansicht nach ein wenig unlesbar ist
Private Sub Image1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, _
_
ByVal Y As Single)
Dim normal_start As Integer
Dim normal_end As Integer
If Sheets("Daten").Cells(16, 1) = 1 Then
normal_start = Sheets("Daten").Cells(15, 1)
normal_end = Sheets("Daten").Cells(14, 1)
Else
normal_start = Sheets("Daten").Cells(22, 1)
normal_end = Sheets("Daten").Cells(21, 1)
End If
normal_x_start = Sheets("Daten").Cells(5, 1)
normal_x_end = Sheets("Daten").Cells(6, 1)
pixwidth_of_0 = normal_to_pixel(Userform1.Image1.Width, 18, 18, 0, normal_x_start, _
normal_x_end)
pixheight_of_0 = normal_to_pixel(Userform1.Image1.Height, 18, 19, 0, normal_start, _
normal_end)
hand = False
If Betrag(Y - pixheight_of_0) < 10 Then
For t1 = 0 To Sheets("Daten").Cells(12, 1) + Sheets("Daten").Cells(10, 1) 'Asymptote+ns
If Betrag(X - point_x_pixels(t1).pixels) < 10 Then
hand = True
End If
Next t1
End If
If hand Then
Userform1.Image1.MousePointer = 99
Userform1.Image1.MouseIcon = LoadPicture(ThisWorkbook.Path & Application.PathSeparator & _
_
"Hand.ico")
Debug.Print X & "HAND"
Else
Userform1.Image1.MousePointer = 0
Debug.Print X & "DEFAULT"
End If
End Sub