[VB6] Überprüfen ob Objekt ein ListItem ist

Programmiersprachen, APIs, Bibliotheken, Open Source Engines, Debugging, Quellcode Fehler und alles was mit praktischer Programmierung zu tun hat.
Antworten
Condottiero
Beiträge: 12
Registriert: 29.07.2011, 13:19
Alter Benutzername: warez666
Echter Name: Chris

[VB6] Überprüfen ob Objekt ein ListItem ist

Beitrag von Condottiero »

Hallo Zusammen,

hab' nur eine kurze Frage, die sich mit Sicherheit einfach beantworten lässt ... aber ich komme gerade nicht drauf. ;-)

Ich bewege meine Mouse innerhalb eines ListView-Controls und möchte im MouseMove-Event immer das ListItem "abfangen", über dem ich mich gerade befinde. Das ListView-Control ist nicht vollständig gefüllt. Demzufolge gibt es auch eine Föäche im Control, in der ich kein ListItem "treffen" kann. Nun ist es so, dass ich beim bewegen der Mouse immer currentItem = ListView1.HitTest(x, y) ausführe, was aber zu Fehlern führt, wenn ich gerade kein ListItem berühre.

Wie kann ich an dieser Stelle überprüfen, ob ich ein ListItem unter dem Cursor habe, oder nicht?

Ich dachte an soetwas wie

Code: Alles auswählen

If ListView1.HitTest(x, y) Is ListItem Then ......... End If
Funktioniert so aber nicht. ^^

Hat jemand eine andere Idee oder kann mir den Fehler in meinem Lösungsansatz aufdecken?

Viele Grüße,
Chris
Stephan Theisgen
Beiträge: 94
Registriert: 29.07.2003, 11:13

Re: [VB6] Überprüfen ob Objekt ein ListItem ist

Beitrag von Stephan Theisgen »

Hi!
Ich hab nicht viel Zeit und VB ist sehr lange her, aber wie wäre es mit:

Code: Alles auswählen

If Not ListView1.HitTest(x,y) Is Nothing Then ... End If
nur so ins Blaue...

Viele Grüße
Stephan
RazorX
Establishment
Beiträge: 156
Registriert: 23.12.2010, 14:13
Kontaktdaten:

Re: [VB6] Überprüfen ob Objekt ein ListItem ist

Beitrag von RazorX »

- War schwachsinn -
Stephan Theisgen
Beiträge: 94
Registriert: 29.07.2003, 11:13

Re: [VB6] Überprüfen ob Objekt ein ListItem ist

Beitrag von Stephan Theisgen »

Guten Morgen!
- War schwachsinn -
Ich hoffe das war jetzt nicht auf meine Antwort bezogen!

Trotzdem habe ich in der Eile vergessen das richtig zu schreiben (man beachte das ".Item"):

Code: Alles auswählen

If Not ListView1.HitTest(e.X, e.Y).Item Is Nothing Then
So klappts aber auf jedenfall. Ich habs jetzt in einem schnelle VB-Projekt getestet...
RazorX
Establishment
Beiträge: 156
Registriert: 23.12.2010, 14:13
Kontaktdaten:

Re: [VB6] Überprüfen ob Objekt ein ListItem ist

Beitrag von RazorX »

Nein, war nicht auf dich bezogen. Ich hatte genau das gleiche wie du geschrieben (mit dem .Item) unter der Annahme es würde sich um das .NET Framework handeln. HitTest liefert dort ja ein ListViewHitTestInfo struct zurück. Doch als ich dann gesehen hatte das im Titel ja VB6 steht war ich mir nicht mehr sicher ob das auch dort funktioniert.

LG
Stephan Theisgen
Beiträge: 94
Registriert: 29.07.2003, 11:13

Re: [VB6] Überprüfen ob Objekt ein ListItem ist

Beitrag von Stephan Theisgen »

Oh!

Dann muß ich Dir aber vielleicht doch Recht geben... Denn auf das VB6 habe ich jetzt gar nicht geachtet. Aber so oder so ähnlich ging das damals schon. Ob das jetzt wirklich VB6 kompatibel ist, ist ne gute Frage!

Edit: In VB6 müßte es tatsächlich ohne das ".Item" gehen, da dort HitTest tatsächlich ein Item-Objekt zurückliefert oder eben Nothing, wenn kein Item an der Position ist...
Condottiero
Beiträge: 12
Registriert: 29.07.2011, 13:19
Alter Benutzername: warez666
Echter Name: Chris

Re: [VB6] Überprüfen ob Objekt ein ListItem ist

Beitrag von Condottiero »

Hallo Zusammen und danke für die Antworten. :-)

Ich habe den Teil meines Projektes, aus dem dieses Problem hier entstanden ist, zwar nun erstmal hinten angestellt, aber das Problem, worum es hier ging, habe ich noch wie folgt gelöst:

Code: Alles auswählen

If TypeName(ListView1.HitTest(x, y)) = "IListItem" Then
Danke und viele Grüße :-)

Chris
Antworten