Hallo Namensvetter,
Da ein ActiveX ein Programm ist braucht es auch Rechenzeit wenn es etwas tun soll.
Insbesonders die Graphik-Routinen von VB sind ziemlich langsam, es empfielt sich da direkt auf die GDI-API zuzugreifen.
Zudem brung es auch nichts, dass gleiche Element 100 mal als EIN zu Zeichnen, da ist es schneller wenn man eine Variable setzt und falls der gleiche Zustand, welcher schon gezeichnet wurde, in diesem Fall nicht nochmals zu Zeichnen.
Der Aufruf einer ActiveX Funktion ist relativ aufwändig und benötigt auch etwas rechenzeit.
Zudem gibt es zwei verschiedene „Arten“ von ActiveX, „ActiveX-DLL“ und „ActiveX-EXE“. Die erstere wird im gleichen Speicher wie das Programm welche es benutzt ausgeführt, die zweite Variante funktioniert als eigenständiger Task, mit eigenem Speicherbereich, dadurch ist der Aufruf etwas komplizierter da die Daten jedesmal zwischen diesen Speicherbereichen hin und her kopiert werden müssen.
Dies sind nur einige Denkanstösse, ohne dein Programm, und damit dein Problem, genau zu kennen kann man keine weiteren Aussagen machen.
Ach ja; Wenn eine Form im Zustand „Hidden“ ist, wird die Ausgabe statt auf den Bildschirm im Speicher abgelegt, ansonsten rechnet sie wie wenn die Ausgabe sichtbar währe.
MfG Peter(TOO)
ich habe mehrere Formulare in einem Projekt erstellt das für
ein Display zur Maschinen-Überwachung bestimmt ist. Da in
einem Formular, je nach Maschinentyp, mehrere gleiche Elemente
dargestellt werden müssen (1-4) verwende ich für diese
Elemente vorher definierte ActiveX-Steuerelemente. Diese
bestehen aus meheren Grafikelementen, wie Shapes u. ä., deren
Darstellung entsprechend des Zustandes eingestellt werden. Die
Formulare werden mit Programmstart zunächst alle geladen und
nur bei Bedarf auf Show geschaltet.
Irgendwie habe ich aber nun den Eindruck, dass die ActiveX’s
die Grafikausgabe ausbremsen.
Vielleicht hat schon jemand Erfahrungen damit gesammelt und
kann mir dazu einen Tip geben.
Danke. Peter