| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
 | PNY präsentiert die neue NVIDIA RTX A400 und die A1000 Grafikkarte, eine Pressemitteilung
|
Autor
|
Thema: Ereignisbehandlung, Aktive Zeichnung (660 mal gelesen)
|
finaluser Mitglied
 Beiträge: 3 Registriert: 07.07.2005
|
erstellt am: 07. Jul. 2005 15:48 <-- editieren / zitieren --> Unities abgeben:         
|
fuchsi Mitglied Programmierer c#.net Datawarehouse
   
 Beiträge: 1201 Registriert: 14.10.2003 AutoCad Version 2012 deu/enu <P>Windows 7 64bit
|
erstellt am: 07. Jul. 2005 15:57 <-- editieren / zitieren --> Unities abgeben:          Nur für finaluser
|
finaluser Mitglied
 Beiträge: 3 Registriert: 07.07.2005
|
erstellt am: 07. Jul. 2005 16:23 <-- editieren / zitieren --> Unities abgeben:         
Hab ich schon probiert. Das geht immer dann sobald ich auf die Zeichnung klicke, auf welche ich das "ActiveDocument" Objekt gelegt habe. Aber wie kann VBA dieses Objekt selbstständig umlegen, sobald ich zwischen den Zeichnungen hin und her klicke? Weißt du da vielleicht was? MfG David Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Proxy Ehrenmitglied Stateless-DHCP v6-Paketfragmentierer
    
 Beiträge: 1629 Registriert: 13.11.2003 Tastaturen, Mäuse, Pladden, Monitore, ..., einige AutoCADs 200x & SWX 2kX
|
erstellt am: 08. Jul. 2005 10:33 <-- editieren / zitieren --> Unities abgeben:          Nur für finaluser
also AcadDocument_Activate() reagiert "sogar" auf alt+tab Tasten ... oder habe ich die Frage: Zitat: Aber wie kann VBA dieses Objekt selbstständig umlegen, sobald ich zwischen den Zeichnungen hin und her klicke?
missverstanden ? Code:
Private Sub AcadDocument_Activate() Set activeDoc = ThisDrawing.Application.ActiveDocument MsgBox "Aktive Datei ist: " & activeDoc.Name, vbInformation, "Proy Beispiel" End Sub
------------------ MfG Proxy Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
finaluser Mitglied
 Beiträge: 3 Registriert: 07.07.2005
|
erstellt am: 11. Jul. 2005 11:20 <-- editieren / zitieren --> Unities abgeben:         
OK, also noch einmal ganz detailiert: Zuerst habe ich mir eine Instanz des Programms heranngeholt und von dieser dann das Aktive Dokument. Sub GetAcadObjects() Set objACAD = GetObject(, "Autocad.Application") Set objDoc = objACAD.ActiveDocument End Sub in objDoc ist jetzt ein Handler auf das "derzeitige" Aktive Dokument vorhanden, von dem ich alle Ereignisse abfangen kann. Aber: öffne ich jetzt ein neues Dokument soll genau dieser Handler auf das neue Dokument umgelegt werden um auch von dieser neuen Zeichnung die Ereignisse zu behandeln. Habe schon überlegt ein dynamisches array anzulegen, um über das AcadApplication.EndOpen() Ereignis neue Dokumente in dieses aufzunehmen. Das Problem ist nur, ich kann mit dem Schlüsselwort "WithEvents", mit dem ich die Variable objDoc anlege, eben kein Array anlegen. Also brauche ich irgendetetwas, was mir mitteilt, dass sich das Aktive Dokument geändert hat. Alle Events wie auch das Activate() treten nur ein wenn es sich um ein und die selbe Zeichnung handelt, aber was passiert wenn ich eine neue öffne? Oder vielleicht geht es auch irgendwie ganz anders? MfG David Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |