| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Probleme zwischen VBA und VB (1247 mal gelesen)
|
Heiko76 Mitglied Applikationsingenieur
Beiträge: 589 Registriert: 21.03.2002
|
erstellt am: 27. Sep. 2010 12:00 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, dieser Code unter VBA in AutoCAD 2008 funktioniert: Code: Dim ssetObj As AcadSelectionSet Set ssetObj = Nothing Set ssetObj = Thisdrawing.SelectionSets.Add("ss_" & Time)Dim gpCode(0) As Integer Dim dataValue(0) As Variant gpCode(0) = 0 dataValue(0) = "IMAGE" Dim groupCode As Variant, dataCode As Variant groupCode = gpCode dataCode = dataValue ssetObj.Select acSelectionSetAll, , , groupCode, dataCode
aber wenn ich dies mit folgendem Code in VB6 teste, dann wird das ssetObj nicht gefüllt. Code: Dim ssetObj As AcadSelectionSet Set ssetObj = Nothing Dim acad As Object Set acad = Autocad.Application.ActiveDocument Set ssetObj = acad.SelectionSets.Add("ss_" & Time)Dim gpCode(0) As Integer Dim dataValue(0) As Variant gpCode(0) = 0 dataValue(0) = "IMAGE" Dim groupCode As Variant, dataCode As Variant groupCode = gpCode dataCode = dataValue ssetObj.Select acSelectionSetAll, , , groupCode, dataCode
Wieso funktioniert das nicht unter VB6? Was muß man da ändern? ------------------ cu Heiko Schau mal rein www.diemertens.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 27. Sep. 2010 12:15 <-- editieren / zitieren -->
Hi, bricht der Code ab mit Fehlermeldung oder läuft er ganz normal durch? Wenn ersteres, dann brächte man mal die vollständigen Deklarationen, da könnte schon mal sein, dass bei Dir die Variable 'acad' vielleicht schon nicht initialisiert ist. Wenn zweiteres, dann hoffe ich mal, das richtige auszukramen (aus ganz grauer Vorzeit, und daher gar nicht sicher ), stell mal diese Zeile um: Dim gpCode(0) As Int16 - alfred - ------------------ www.hollaus.at |
Heiko76 Mitglied Applikationsingenieur
Beiträge: 589 Registriert: 21.03.2002
|
erstellt am: 27. Sep. 2010 12:21 <-- editieren / zitieren --> Unities abgeben:
|
Ex-Mitglied
|
erstellt am: 27. Sep. 2010 12:23 <-- editieren / zitieren -->
Hi, dann dieser Versuch (sorry, ist leider schon lange her): Dim gpCode(0) As Short - alfred - ------------------ www.hollaus.at |
Heiko76 Mitglied Applikationsingenieur
Beiträge: 589 Registriert: 21.03.2002
|
erstellt am: 27. Sep. 2010 12:52 <-- editieren / zitieren --> Unities abgeben:
|
Ex-Mitglied
|
erstellt am: 27. Sep. 2010 13:03 <-- editieren / zitieren -->
Hi, wenn Du den Code schrittweise durchläufst (und die Versuche wieder zurückstellst auf Integer), landest Du dann NACH dieser Zeile: ssetObj.Select acSelectionSetAll, , , groupCode, dataCode an dem Punkt, dass ssetObj Nothing ist - oder ssetObj.Count = 0 ist? - alfred - ------------------ www.hollaus.at [Diese Nachricht wurde von a.n. am 27. Sep. 2010 editiert.] |
Heiko76 Mitglied Applikationsingenieur
Beiträge: 589 Registriert: 21.03.2002
|
erstellt am: 28. Sep. 2010 08:10 <-- editieren / zitieren --> Unities abgeben:
Hallo Alfred, ja, wenn ich das wieder auf integer setze, läuft der Code komplett durch (ohne Fehlermeldung) nur dann ist ssetobj.count ist dann = 0. Wenn ich den gleichen Code in VBA direkt in AutoCAD 2008 laufen lasse, dann bekomme ich bei meiner Zeichnung ssetobj.count = 14, also Bilder sind definitiv drin. ------------------ cu Heiko Schau mal rein www.diemertens.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 28. Sep. 2010 08:46 <-- editieren / zitieren -->
Hi, sorry, ich seh da keinen Fehler mehr. Es kann nicht sein, dass Du ev. Verweise auf eine ältere Version von AutoCAD hast? Ich geb zu, unwahrscheinlich, dass der Code dann läuft, aber ein kleiner Hoffnungsschimmer wäre es. - alfred - ------------------ www.hollaus.at |
Heiko76 Mitglied Applikationsingenieur
Beiträge: 589 Registriert: 21.03.2002
|
erstellt am: 28. Sep. 2010 08:49 <-- editieren / zitieren --> Unities abgeben:
Ne, hab ich auch schon gedacht. Leider nicht. Es ist eigendlich Alles richtig, aber trotzdem funktioniert es nicht. Ich installier mir jetzt mal .net und versuche es damit mal. Mal gucken was dabei raus kommt. Trotzdem danke Dir. Denke mal das ist ein Bug von VB6 ------------------ cu Heiko Schau mal rein www.diemertens.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Bauingenieur /Architekt als Projektleiter (m/w/d) | Die KSB SE & Co. KGaA ? ist eine Perle im Mittelstand. Seit unserer Gründung haben wir uns dem Ziel verschrieben, innovative Lösungen für eine effiziente und nachhaltige Nutzung von Flüssigkeiten anzubieten. Unsere Produktpalette umfasst eine breite Auswahl an Pumpen, Armaturen, Steuerungen und Serviceleistungen, die höchsten Qualitätsstandards entsprechen. Als global agierendes Unternehmen legen wir großen Wert auf Nachhaltigkeit und Umweltschutz.... | Anzeige ansehen | Teamleitung, Gruppenleitung |
|
Ex-Mitglied
|
erstellt am: 28. Sep. 2010 08:51 <-- editieren / zitieren -->
Hi, >> Denke mal das ist ein Bug von VB6 Unwahrscheinlich, da ich vor dotNET (also vor Jahrzehnten ) einiges mit VB6 (als DLL's/ActiveX) gemacht hab und das Problem dabei nicht aufgetreten ist. Viel Erfolg, - alfred - ------------------ www.hollaus.at |