Autor
|
Thema: Abfrage, ob ein Objekt leer ist (2074 mal gelesen)
|
Math.random Mitglied Ing
Beiträge: 8 Registriert: 23.02.2010
|
erstellt am: 23. Feb. 2010 20:12 <-- editieren / zitieren --> Unities abgeben:
Hallo an alle! Für folgendes triviales Problem habe ich nirgends eine Lösung gefunden: Wie kann in catvbs überprüft werden, ob ein Objekt leer ist? Angenommen, es gibt eine Variable namens Testvariable: Code: Dim Testvariable
Dann kann folgende Abfrage gestartet werden: Code: If Testvariable = Empty Then ... Else ...
Dies funktioniert, solange Testvariable nicht mit einem Wert belegt ist und auch, wenn beispielsweise gesagt wurde: Testvariable = "Abc" oder z.B. Testvariable = 123 Wird Testvariable jedoch als Geometrisches Element definiert (als Value einer User-Selection SelectElement2, z.B. durch Anklicken eines Punktes), dann gibt es eine Fehlermeldung. Weil Empty nicht auf derlei Objekte anwendbar ist. Wie lässt sich in diesem Fall prüfen, ob Testvariable bereits gesetzt wurde oder noch leer ist? Irgend etwas Einfaches à la Wenn Testvariable Dann... Und wenn Testvariable als Geometrisches Element definiert wurde: Wie lässt sich Testvariable reseten, ohne dass der Typ geändert wird? (vgl. String1 = "Abc" --> String1 = "") So dass eine erneute Nachfrage (leer oder belegt?) möglich ist. Was problemlos mit Strings, Reals, Booleans etc. funktioniert, muss doch auch mit Objekten möglich sein! Vielen Dank für Eure Hilfe. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 23. Feb. 2010 20:29 <-- editieren / zitieren --> Unities abgeben: Nur für Math.random
|
Math.random Mitglied Ing
Beiträge: 8 Registriert: 23.02.2010
|
erstellt am: 23. Feb. 2010 23:47 <-- editieren / zitieren --> Unities abgeben:
Hallo Bernd, Danke, Is Nothing funktioniert. Ich hatte im Vorfeld natürlich hier im Forum und im Web nach einer Lösung gesucht. Da stößt man auf Worte wie Empty, Null und Nothing. Die habe ich natürlich alle durchprobiert: If ... = Empty/Null/Nothing/false/""/0 usw. Dass man aber Is Nothing schreiben muss, statt = Nothing, darauf wäre ich nie gekommen. Zumal z.B. = Empty in bestimmten Fällen super funktioniert. Und beim Reseten wird im Zusammenhang mit Nothing auch wieder das übliche Gleichheitszeichen statt dem Is verwendet. Mit Logik ist dem wohl kaum beizukommen. Das muss man auswendig lernen oder nachschlagen. Aber im Netz war nichts zu dieser grundlegenden Visual-Basic-Thematik zu finden und in der V5Automation_R19.chm sowieso nicht. Ein mit V5-Makros jahrelang vertrauter Kollege konnte mir hier auch nicht weiterhelfen. Vielleicht hilft Deine Antwort ja auch anderen Forums-Nutzern. MfG, Hermann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DanielFr. Moderator Manager
Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 24. Feb. 2010 07:32 <-- editieren / zitieren --> Unities abgeben: Nur für Math.random
|
tomtom1972 Mitglied dipl ing maschinenbau
Beiträge: 605 Registriert: 22.03.2005 NVidia Quadro K4000 Intel Xeon E5-1620, 64GB RAM Windows10 64bit R30 <= CATIA V5 > =R19
|
erstellt am: 24. Feb. 2010 10:34 <-- editieren / zitieren --> Unities abgeben: Nur für Math.random
Hallo, wenn ich mich nicht ganz irre ist die Negation der Is Nothing Abfrage eher If Not oObject is Nothing Then Is Not Nothing erzeug (zumindest bei mir) einen Error. Gruß
------------------ tomtom1972 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DanielFr. Moderator Manager
Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 24. Feb. 2010 11:10 <-- editieren / zitieren --> Unities abgeben: Nur für Math.random
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|