Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  AutoCAD VBA
  Probleme zwischen VBA und VB

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
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


Sehen Sie sich das Profil von Heiko76 an!   Senden Sie eine Private Message an Heiko76  Schreiben Sie einen Gästebucheintrag für Heiko76

Beiträge: 589
Registriert: 21.03.2002

erstellt am: 27. Sep. 2010 12:00    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

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


Sehen Sie sich das Profil von Heiko76 an!   Senden Sie eine Private Message an Heiko76  Schreiben Sie einen Gästebucheintrag für Heiko76

Beiträge: 589
Registriert: 21.03.2002

erstellt am: 27. Sep. 2010 12:21    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo alfred,

leider läuft er ohne Fehlermeldung durch. Wenn ich die Zeile umtausch sagt er mir "Benutzerdefinierter Typ nicht definiert".

------------------
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:23    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

dann dieser Versuch (sorry, ist leider schon lange her):

Dim gpCode(0) As Short

- alfred -

------------------
www.hollaus.at

Heiko76
Mitglied
Applikationsingenieur


Sehen Sie sich das Profil von Heiko76 an!   Senden Sie eine Private Message an Heiko76  Schreiben Sie einen Gästebucheintrag für Heiko76

Beiträge: 589
Registriert: 21.03.2002

erstellt am: 27. Sep. 2010 12:52    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi Sorry aber da kommt der selbe Fehler...  

kann es sein das das beides von VB.net kommt. Ich bin z.Zt. noch mit VB6 unterwegs...

------------------
cu
Heiko

Schau mal rein www.diemertens.de

[Diese Nachricht wurde von Heiko76 am 27. Sep. 2010 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP


Ex-Mitglied

erstellt am: 27. Sep. 2010 13:03    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

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


Sehen Sie sich das Profil von Heiko76 an!   Senden Sie eine Private Message an Heiko76  Schreiben Sie einen Gästebucheintrag für Heiko76

Beiträge: 589
Registriert: 21.03.2002

erstellt am: 28. Sep. 2010 08:10    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

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


Sehen Sie sich das Profil von Heiko76 an!   Senden Sie eine Private Message an Heiko76  Schreiben Sie einen Gästebucheintrag für Heiko76

Beiträge: 589
Registriert: 21.03.2002

erstellt am: 28. Sep. 2010 08:49    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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 ansehenTeamleitung, Gruppenleitung

Ex-Mitglied

erstellt am: 28. Sep. 2010 08:51    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

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

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz