Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  vba userform sichtbar, swx unsichtbar

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
  
SolidCAM Professor Videos | Tipps & Tricks (SolidCAM)
Autor Thema:  vba userform sichtbar, swx unsichtbar (1007 / mal gelesen)
Christian_W
Ehrenmitglied V.I.P. h.c.
Konstrukteur (Dipl-Ing)


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

Beiträge: 3189
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 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 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 Vordergrund

swapp.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


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

Beiträge: 720
Registriert: 17.01.2007

SWX 2019 SP5
AutoCAD 2019
Win 10 pro 64 bit
Intel(R) Xeon(R) CPU E5-1650 v4 @ 3.60GHz
64GB RAM
Nvidia Quadro M5000
SWx EPDM

erstellt am: 09. Aug. 2018 08: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 Christian_W 10 Unities + Antwort hilfreich


Fortschrittsanzeige.png

 
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)


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

Beiträge: 3189
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 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

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 >>)

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