Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  WithEvent-Anweisung

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:  WithEvent-Anweisung (1779 mal gelesen)
Armbrust
Mitglied
Entwicklungsingenieur

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

Beiträge: 4
Registriert: 14.06.2004

erstellt am: 15. Jun. 2004 10:54    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,

ich möchte gerne bei jedem Öffnen einer .idw deren
DisplayName abfragen, weil dieser die Info enthält,
ob die Zeichnung gesperrt oder Freigegeben ist.

Mit folgendem Code habe ich das im Moment gelöst:
---------------------------------------------------------------------
Public WithEvents oAE As ApplicationEvents
-----------------------
Public Sub AutoOpen_Test()
   
  Set oAE = ThisApplication.ApplicationEvents
 
End Sub
-----------------------
Private Sub oAE_OnActivateDocument(ByVal DocumentObject As Document, ByVal BeforeOrAfter As EventTimingEnum, ByVal Context As NameValueMap, HandlingCode As HandlingCodeEnum)

Dim Z As DrawingDocument                   
Set Z = ThisApplication.ActiveDocument     

If Z.DisplayName = "gesperrt" Then
    MsgBox ("Zeichnung zum Ändern gesperrt !" & Chr(10) &_
            "Drucken im gesperrten Zustand nicht zulässig !!")
End If

End Sub
----------------------------------------------------------------------
Problem Nr.1: Diese Methode funktioniert nur, wenn sich der Code
              im "ThisDocument" des Dokumentprojektes befindet.
              Das bedeutet, ich muß diesen Code in sämtliche
              Zeichnungen kopieren die bereits existieren.(Arbeit!!)
              Gibt es eine Lösung für das gesamte Anwendungsprojekt ?

Problem Nr.2: Das Event "OnActivateDocument" wird 2 mal ausgelöst,
              d.h. ich bekomme zwei Meldungen. Ich möchte aber, wenn
              es geht, nur eine.

Freue mich auf eure Hilfe, Danke.

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

daywa1k3r
Moderator
Softwareentwickler




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

Beiträge: 3497
Registriert: 01.08.2002

Alienware m17x, Win7, Inventor2012

erstellt am: 15. Jun. 2004 11:16    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 Armbrust 10 Unities + Antwort hilfreich

1. Vielleicht den Code in Template File kopieren. Ob das bei den bestehenden Zeichnungen hilft weiss ich nicht. Mal testen. Oder aber eine DLL kompilieren die dann auf jeden Fall funktioniert.

2. ByVal BeforeOrAfter As EventTimingEnum gibt an, ob Event zuvor oder danach ausgelöst werden soll. Mit einem einfachen:

Code:

If BeforeOrAfter = kAfter Then
    MsgBox "After"
ElseIf BeforeOrAfter = kBefore Then
    MsgBox "Before"
Else
    MsgBox "Abort"
End If

kannst du es steuern.

Bis dann...

€dit:

1. Du kannst natürlich auch ein Klassenmodul in dein Projekt einfügen. Dann funktioniert auch Public WithEvents oAE As ApplicationEvents

€dit2: Oder die Suchfunktion
------------------
Grüße daywa1k3r

    

[Diese Nachricht wurde von daywa1k3r am 15. Jun. 2004 editiert.]

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

Armbrust
Mitglied
Entwicklungsingenieur

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

Beiträge: 4
Registriert: 14.06.2004

erstellt am: 15. Jun. 2004 12: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

Wenn ich den Code ins Template File kompiere, dann ist er bei
allen neuen Zeichnungen da.

Gibt es vielleicht auch die Möglichkeit, daß wenn ich eine Zeichnung
sperre (der DisplayName wird verändert) automatisch der entsprechende
Code in "ThisDocument" kopiert wird ?
Da gäbe es doch bestimmt einen Weg, oder?

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