Hallo Herr Martin,
danke für Ihre letzte Antwort.!
Um in der Angelegenheit große Schritte zu tun (oder sie bleiben zu lassen, was ich erst einmal bevorzugt habe) müssten wir wohl über das Schreiben hinausgehen.
Momentan treibt mich eine andere Angelegenheit um:
Inzwischen nutze ich ja das visio2010.
Ein Kollege, dem ich eine kleine Simulation zugeschickt habe, benutzt ein visio 2013.
Nun brauche ich für meine Routine einen genauen 20ms Zeittakt. (oder auch 30ms, …)
Die Rechnerzeit hole ich mir mit GetTime aus
Private Declare Function GetTime Lib „winmm.dll“ Alias „timeGetTime“ () As Long
Dabei überwache ich, ob mein Arbeitszyklus auch nicht länger als die 20ms ist.
Seit langem funktioniert bei mir die Routine. (auch gemütliche PC’s) Die Überwachung habe ich sichtbar gestaltet.
Jetzt, bei meinem Kollegen, braucht der PC, wie soll ich sagen, „mehr Zeit“ (auch 30ms reichen nicht)….
Frage:
– Ist Ihnen ein besserer Zugriff auf die Systemzeit des PC’s im Rahmen in visio bekannt?
– Hätten Sie ein Erklärung parat ?
zur Info das kleine Programmstück
If (M_GetTime – Ticker) > Taktzeit Then ‚ in Abstand von z.B. 20ms wird getaktet
Schleife = True ‚ für den Aufruf eines Programmes
If (M_GetTime – Ticker) > 2 * Taktzeit Then ‚ Kontrolle, ob Überlauf!
Taktueberlauf = Taktueberlauf + 1
End If
Normaltakt = Normaltakt + 1 ‚ Zähler für den Takt
Ticker = Ticker + Taktzeit
End If
….im Programm dann „Schleife = false“
####
Hallo Herr F.,
Hätten Sie mich gefragt, wie man einen Timer ansteuert , hätte ich Ihnen geantwortet – mit einer API-Funktion. Nein , Visio hat, anders als Word oder Access, keinen integrierten Timer.
Dass diese Funktion nicht richtig arbeitet, oder sich je nach Rechner oder Prozessor oder Betriebssystem unterschiedlich verhält – dazu kann ich nichts sagen .
Also doch Visual Studio als Überbau?
Sorry – da kann ich leider nicht weiterhelfen.
Schöne Grüße
Rene Martin
#####
Hallo Herr Martin,
vielen Dank für Ihre Antwort!
Und Sie waren eigentlich meine einzige große Hoffnung, etwas Licht in die Dunkelheit zu bringen!
Es ist schon verrückt! Ich habe zu Hause 2 PC’s , einen zum Arbeiten und einen alten, der nur noch herumsteht. Und einen kleinen Laptop.
Auf allen 3 Rechnern (ob W7 oder XP) läuft die genannte Routine (quasi unabhängig von der Leistungsfähigkeit) recht ähnlich.
Das Nutzerprogramm braucht halt ein paar Millisekunden. Der Hauptanteil dürfte aber für VB-visio bei der Bildschirmbehandlung (Verschieben von Rechtecken) verschwendet werden. Hat man z.B einen bunten Hintergrund braucht die Routine mehr Zeit…
Nun mache ich die Erfahrung, dass mit einem (sicher) leistungsfähigem Rechner, aber eben mit visio 2013, das gleiche Programm erheblich mehr Zeit kostet.
Nun, ich werde auf die Ferne mit den Kollegen einige Test’s versuchen , um der Sache etwas näher zu kommen.
Gern informiere ich Sie über das Ergebnis. Vielleicht gibt es auch noch andere Nutzer, die ähnliche Erfahrungen brauchen könnten. Und Sie sind ja der wohl einzige Fachmann, der sich mit visio voll auskennt.
Aus meiner Sicht ist es eigentlich schade, dass MS das Produkt „visio“ so verkommen lässt. ( oder so modernisiert…)
In meiner frühen Zeit habe ich noch maschinennahe Programme geschrieben (Z80). Da es Mangel an Speicher gab, war es oft das Ziel, überlegt zu programmieren…..
Noch bin ich begeistert, dass man z.B. mit 300kB visio-Programm bewegte Bilder mit wichtigem techn. Hintergrund zusammenstellen kann.
Allerdings ist für Viele das meist gar kein Argument… – eben schade!