Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Events !?

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 SOLIDWORKS
Autor Thema:  Events !? (1002 mal gelesen)
Jens S.
Mitglied
Dipl.-Ing.


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

Beiträge: 55
Registriert: 23.02.2005

erstellt am: 24. Mrz. 2005 11:25    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

Moin Jungs + Mädels,

Wenn ich versuche eine Event-Steuerung in VB6 (API-Progammierung) einzubinden (zu deklarieren), dann bekomme ich immer folgenden Fehler:

Dim WithEvents msrcPartDoc As SldWorks.PartDoc

Fehler Meldung:

Fehler beim Kompilieren!
Nur in ObjektModul zulässig!

Da ich noch nicht sehr lange Api-mässig dabei bin, wäre ich über eine Interpretation der Fehlermeldung dankbar :-)

LG JENS

PS: An Alle schonmal: Frohe Ostern!

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

Kalle
Mitglied
Student


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

Beiträge: 706
Registriert: 14.04.2002

erstellt am: 24. Mrz. 2005 13:56    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 Nur für Jens S. 10 Unities + Antwort hilfreich

Aheu Jens,

das ist auch eine Sache, die ich nicht so ganz verstehe, aber pack deine Deklaration in ein Formular und dann geht's. Musst dann aber auch die Prozeduren im Formular haben (glaub ich mich zu entsinnen).

Bis dann,
Kalle

------------------
-----------------------------------------
Es gibt immer mehr Lösungen als Probleme.

[Diese Nachricht wurde von Kalle am 24. Mrz. 2005 editiert.]

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

Jens S.
Mitglied
Dipl.-Ing.


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

Beiträge: 55
Registriert: 23.02.2005

erstellt am: 30. Mrz. 2005 14:02    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 Kalle,

das habe ich gemacht und es funktioniert. :-)Warum weiss ich auch nicht?! :-) Was das auch immer für die zukünftige Verwendung in einem Programm-Code bedeuten mag?!

Wie sieht denn die Deklaration

Dim WithEvents msrcPartDoc As swApp.PartDoc

ohne die Verwendung von der SldWorks 200x Type Library aus?
Da fängt er bei mir nämlich zu meckern an, wenn ich "As Object" sage... :-) Wird wohl am disem "blöden" WithEvents" liegen ...

Lieben Gruß JENS

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

Kalle
Mitglied
Student


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

Beiträge: 706
Registriert: 14.04.2002

erstellt am: 30. Mrz. 2005 14:22    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 Nur für Jens S. 10 Unities + Antwort hilfreich

Aheu Jens,

ich vermute mal das geht überhaupt nicht, da in der Type Library festgelegt ist, dass das PartDoc überhaupt Events abfeuern kann. Dein Programm weiss ja sonst nicht worauf es überhaupt warten soll. Hab aber auch noch keine 'wissenschaftliche' Erklärung dazu gelesen, sondern das ist das, was ich mir grade selbst überlegt hab 

Bis dann,
Kalle

------------------
-----------------------------------------
Es gibt immer mehr Lösungen als Probleme.

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

Jens S.
Mitglied
Dipl.-Ing.


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

Beiträge: 55
Registriert: 23.02.2005

erstellt am: 30. Mrz. 2005 14:37    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,

danke für die Info! :-)

Ist es denn gundsätzlich "besser" oder "schlechter" in einem externen (kein Makro) VB6-Tool die Library einzubinden? Denn bis jetzt habe ich alles ohne diese Type-Library gemacht (AS Object usw usw) und müsste ja nun darauf zurück greifen wegen der "WithEvents"-Geschichte?! (Im übrigen sind ja viel VB6-API-Beispiele (extern) ohne diese Library, wird bestimmt einen Grund haben oder?)

Oder ist es kein Problem einfach einen Verweis auf diese Library zusetzten und einfach alles neu zu deklarieren?

Gruß JENS

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

Andreas Müller
Mitglied
Masch. Ing. HTL / Betriebsing. STV


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

Beiträge: 1151
Registriert: 11.04.2001

erstellt am: 30. Mrz. 2005 16:22    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 Nur für Jens S. 10 Unities + Antwort hilfreich

Hi Jens.

Ich denke mal, dass die "Formularlösung" funktioniert, weil ein Formular eine "Klasse" ist. Vermutlich könntest Du (ich hab's selber noch nicht versucht) auch eine eigene Klasse definieren und da dann mit WithEvent arbeiten. So hat offenbar jeden SWX-Macro eine Klasse "SolidWorks Objekte" worin man mit den Events arbeiten kann.

Ob Du mit "late Binding" (as Object) oder "early Binding"  arbeitest (z.B. as ModelDoc2) kannst Du (wie schon festgestellt) selbst entscheiden. Beides hat Vor- und Nachteile. Beim Programmieren arbeite ich eigentlich immer mit early Binding. Das hat den Vorteil, dass VB weiss, was es denn mit dem Objekt machen kann (Eigenschaften, Methoden). Dann ist es wesentlich einfacher die richtigen "Funktionen" zu finden (Ctrl-Space).

------------------
Gruss
Andreas
A+E Müller AG

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

Jens S.
Mitglied
Dipl.-Ing.


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

Beiträge: 55
Registriert: 23.02.2005

erstellt am: 01. Apr. 2005 11:14    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 Andreas,

danke für den nützlichen Hinweis. Ich werde das mal überprüfen/ausprobieren und eine Rückmeldung geben.

Lg JENS

PS: Schönes Wochenende an ALLE!

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

Jens S.
Mitglied
Dipl.-Ing.


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

Beiträge: 55
Registriert: 23.02.2005

erstellt am: 05. Apr. 2005 11:31    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 Jungs,

ich habe die Event-Steuerung mal nach Angaben von Kalle realisiert.
Ich habe das Ganze in eine eigene Form gebracht, die ich "einfach" initialisiere.

Jedoch bekomme ich diese Form trotz "UNLOAD" nicht mehr abgeschaltet und mein Modul (VB6-Prog.) empfängt weiterhin lustig Events des Typs PartDoc :-)

Wie kann ich das Biest denn zum schweigen bringen?

Zudem musste ich die Form unsichtbar "machen" (visible = false)! Also, so richtig gefällt mir das noch nicht! Mir scheint das nicht ganz so fachgerecht zusein.

LG JENS

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

Andreas Müller
Mitglied
Masch. Ing. HTL / Betriebsing. STV


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

Beiträge: 1151
Registriert: 11.04.2001

erstellt am: 05. Apr. 2005 12:57    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 Nur für Jens S. 10 Unities + Antwort hilfreich

Hi Jens.
Vielleicht hilft "Set Formular = Nothing"?!?

------------------
Gruss
Andreas
A+E Müller AG

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

Jens S.
Mitglied
Dipl.-Ing.


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

Beiträge: 55
Registriert: 23.02.2005

erstellt am: 05. Apr. 2005 13:24    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 Andreas,

gute Idee. Ich habe bereits einen Zeiger auf Nothing gesetzt und das hat bis jetzt gut geklappt.

Jens

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

Jens S.
Mitglied
Dipl.-Ing.


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

Beiträge: 55
Registriert: 23.02.2005

erstellt am: 06. Apr. 2005 09:31    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

Moin, Moin,

also diese Event-Steuerung bringt mich nochmal ins Grab!
Nun habe ich folgendes Problem (was aber nicht immer auftritt):

Wenn ich ein Event des Typs PartDoc auslöse und eine "Mitteilung" an mein VB6-Prog. gechickt wird, dann leite ich damit die Abarbeitung eines Anweisungsblockes ein.

Z.b.

Private Function msrcPartDoc_NewSelectionNotify() As Long
ArtderComponente
End Function

Private Sub ArtderComponente()
Anweisung1
Msgbox("Blabla")
Anweisung2
Anweisung2
End Sub

Das Problem ist nun folgendes:

Bestätige ich die MsgBOX nicht innerhalb einer gewissen Zeit (mir scheint es jedenfall so), so bekomme ich eine "Fehlermeldung" und zwar mit dem Inhalt:

SERVER IST AUSGELASTET!
Dieser Vorgang kann nicht ausgeführt werden, da das Programm XX(meins) nicht reagiert. Klicken Sie auf "Wechseln zu" um das Problem zu beheben.

Dann kann ich in der Nachrichtbox der "Fehlermeldung" auf Wechseln zu oder Wiederholen klicken ...

Hat jemand eine Ahnung, was da schief läuft?

Gruß JENS

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

PASCAM
Mitglied
Diplom Informatiker


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

Beiträge: 67
Registriert: 25.11.2002

erstellt am: 06. Apr. 2005 10:59    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 Nur für Jens S. 10 Unities + Antwort hilfreich

Hallo Jens,

Das ist kein Fehler, sondern so gewollt, unbd zwar vom Betriebssystem.
Foglender Hintergrund:
SWXSolidWorks ruft Dein VB6_programm, wohl als EXE (Out-Of-Process). Dein VB6-Programm braucht eine Zeit und wartet dann mit der MsgBox. Aus Sicht von SWXSolidWorks laeuft Dein VB6-Programm noch und muss warten. Da die Kommunikation mittels COM stattfindet, ueberprueft das Betriebssystem, ob es die Verbindung noch gibt. Nach einer gewissen Zeit zeigt der Aufrufer (SWXSolidWorks) diese Meldung an, da dieser ja auf die Antwort wartet.
Loesungen:
- Nur kurze Bearbeitungen
- Realisierung als DLL (geht auch mit VB6)
- die eigentliche Bearbeitung in einem eigen Thread ablaufen lassen (einiges an Programmieraufwand)
- Die Sache mit VBA realisieren (quasi als Dll)

Hoffe, ich habe Dir ein wenig weitergeholfen.

Gruss, Ralph

------------------
PASCAM Ralph Müller
Softwareentwicklung

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

Jens S.
Mitglied
Dipl.-Ing.


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

Beiträge: 55
Registriert: 23.02.2005

erstellt am: 06. Apr. 2005 11:04    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 PASCAM,

vielen Dank für die ausführliche Erklärung! Jetzt weiss ich zumindest, woran es liegt.
Da ich noch relativ unerfahren mit VB bin, muss ich erst mal deine Tipps analysieren und verstehen, was damt gemeint ist.

Gruß JENS

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

Jens S.
Mitglied
Dipl.-Ing.


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

Beiträge: 55
Registriert: 23.02.2005

erstellt am: 06. Apr. 2005 12:48    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 Leuts, hallo PASCAM

hat für mich einer von euch mal eine kurze Aufklärung über die Nutzung einer .DLL?
Ich denke, dass das etwas mit einer direkten Einbindung in SldWorks zutun haben muss?!

LG JENS

PS: Jeden Tag was Neues - echt schlimm ... :-)

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

PASCAM
Mitglied
Diplom Informatiker


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

Beiträge: 67
Registriert: 25.11.2002

erstellt am: 06. Apr. 2005 13: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 Nur für Jens S. 10 Unities + Antwort hilfreich

Hallo Jens,

Schau mal unter http://ww3.cad.de/foren/ubb/Forum2/HTML/006311.shtml nach, da ist ein Beispiel drin.

Ansonsten empfehle ich Dir eine Schulung in VB oder externe Dienstleistung. Ich glaube, das wird billiger.

Gruss, Ralph

------------------
PASCAM Ralph Müller
Softwareentwicklung

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

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)2024 CAD.de | Impressum | Datenschutz