| |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS | | |  | Visiativ Blog | Tipps & Tricks rund um SOLIDWORKS und 3DEXPERIENCE. , ein Kurs
|
Autor
|
Thema: vba userform sichtbar, swx unsichtbar (1111 / mal gelesen)
|
Christian_W Ehrenmitglied V.I.P. h.c. Konstrukteur (Dipl-Ing)
     
 Beiträge: 3352 Registriert: 04.04.2001 CSWP 12/2015<P>SWX2021sp5 Win10/11 (SWX2016, SWX2012) proAlpha6.2e00/calinkV9 (Tactonworks) (Medusa7, NesCAD2010, solidEdge19)
|
erstellt am: 08. Aug. 2018 18:15 <-- editieren / zitieren --> Unities abgeben:         
Hallo Kollegen, ich versuche ein Makro zu beschleunigen durch unsichtbares öffnen von Komponenten also am besten gleich swapp.visible = false, . damit man sieht, dass noch etwas passiert, würde ich gerne ein userform offen halten und zwischendurch aktualisieren. hab ich da schon das richtige gefunden, oder geht es einfacher/eleganter? bisher habe ich erreicht
Code:
userform.show (false) ... HWND_TOPMOST 'behalte es im Vordergrundswapp.usercontrol=false, swapp.visible=false ' hier verschwindet es mit der appmit der app userform.visible ' ah, es wird wieder angezeigt, aber nur als leerer Rahmen bis das Makro durch ist ... userform.ändere_dich ' das steht jetzt mal für einige Texteinträge im userform, z.B. Schleifenzähler userform.repaint ' in der Schleife eingebaut, jetzt sieht es auch so aus, wie gewünscht ... swapp.visible = true ' wenn die Arbeit erledigt ist. swapp.usercontrol = true
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Maler Mitglied Konstrukteur / CAD-Admin / Mädchen für alles
  
 Beiträge: 729 Registriert: 17.01.2007 SWX 2023 SP5 Draftsight 2023 Win 11 Enterprise Intel i7-13700 2.10 GHz 64GB RAM Nvidia RTX A2000 12GB SWx EPDM AP+ CSWE 2018
|
erstellt am: 09. Aug. 2018 08:22 <-- editieren / zitieren --> Unities abgeben:          Nur für Christian_W
Zitat: Original erstellt von Christian_W: unsichtbares öffnen von Komponenten
Ich halte in der Regel SWX offen und lade die Modelle im Hintergrund: http://help.solidworks.com/2017/english/api/swconst/SOLIDWORKS.Interop.swconst~SOLIDWORKS.Interop.swconst.swOpenDocOptions_e.html mit swOpenDocOptions_Silent .
Zitat: damit man sieht, dass noch etwas passiert, würde ich gerne ein userform offen halten und zwischendurch aktualisieren.
Ich habe mir da mal eine Fortschrittsanzeige gebastelt, die ich jetzt im Prinzip immer wieder recycle. -> Die wird nicht modal angezeigt (ShowModal=False) und bei jedem Durchlauf aktualisiert. Der "Ladebalken" ist dabei nichts weiter als ein eingefärbtes Label, dessen Breite bei jeder Runde erhöht wird. Wesentlich für die Umsetzung war bei mir, in jeder Runde nach dem Block mit den Änderungen (Laufzeit, %-Anzeige, kopierte Anzahl, Breite Ladebalken...) ein Code:
DoEvents
einzufügen. Damit aktualisiert er überhaupt erst die Anzeige bei jeder Runde, ansonsten nur eher zufällig mal. Repaint habe ich noch nie benutzt, Kann sein, dass das den gleichen Effekt hat. Mit dem Ausblenden von SWX habe ich noch nicht gearbeitet. Gruß, Jens ------------------ CSWA, CSWP, CSWPA-SM & -SU & -DT =)
[Diese Nachricht wurde von CAD-Maler am 09. Aug. 2018 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |

| |
Christian_W Ehrenmitglied V.I.P. h.c. Konstrukteur (Dipl-Ing)
     
 Beiträge: 3352 Registriert: 04.04.2001 CSWP 12/2015<P>SWX2021sp5 Win10/11 (SWX2016, SWX2012) proAlpha6.2e00/calinkV9 (Tactonworks) (Medusa7, NesCAD2010, solidEdge19)
|
erstellt am: 09. Aug. 2018 18:33 <-- editieren / zitieren --> Unities abgeben:         
Danke schon mal für die Rückmeldung. ich verstehe es so: - repaint wird nur das userform neu "zeichnen" - doEvents macht das zwar auch, wird auch anderes abarbeiten, z.B. wenn ich im userform Aktionsbuttons zum drücken habe ... mit "Silent" muss ich auch noch mal probieren  Gruß, Christian
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |