Usuario
Problema de lentitud de acceso a CorelDraw

Pregunta
-
Tengo un problema de lentitud al acceder a los datos de CorelDRAW mediante la libreria "Corel - CorelDRAW 14.0 Library" desde el Visual Basic 6.0.
A modo de ejemplo, a continuación les muestro una rutina de las que uso y que sufre ese retardo considerable:Sub ObtenerPosicion(s As CorelDRAW.Shape, intSegment As Integer)
dim XCorel As Double, YCorel As Double, t_OffsetSegment As Double
s.Curve.Segments.Item(intSegment).GetPointPositionAt XCorel, YCorel, t_OffsetSegment
...
End SubSi se ejecuta esta instrucción 100 veces seguidas con VB6.0 su duración total es de más de 2 segundos; en canvio, con VBA intregrado en CorelDraw tan sólo dura un instante (y el problema es que no puedo usar VBA porque no permite la creación del fichero ejecutable ".exe").
¿Cabe la posibilidad de evitar dicha demora en los accesos al documento CorelDRAW utilizando el Visual Basic 6.0? ¿Cómo?
- Editado VB6.0_User martes, 14 de diciembre de 2010 13:44
Todas las respuestas
-
-
Gracias Luis,
pero sí que son determinates esos 2 segundos, porque en un mismo documento podrían haber cientos de figuras diferentes, no sólo una, con lo cual se demoraría demasiado.
Crees que si en lugar de usar el CorelDRAW 14.0 Library usara una anterior más compatible con VB iría de forma instantánea? (Aunque a la vez tendría que ser compatible con CorelDRAW x4)
O si usara CorelDRAW 14.0 Library pero con VB.Net, haría que los accesos fueran instantáneos?
O realmente no hay solución para que este tipo de accesos sean "instantáneos" a no ser que sea desde el propio VBA incorporado en Corel?
-
Supuestamente vb levanta el componente y a la proxima vez ya tendria en memoria algo pero se ve que con corel debe quitar los accesos de memoria y tiene que levantarlo cada vez.
Salvo que levantes el vba en visual y a traves de este al corel embebido.
-
Hola Luis,
me parece muy interesante esto que comentas:
"Salvo que levantes el vba en visual y a traves de este al corel embebido."
El caso es que no sé como acceder al VBA para levantarlo. He probado varias cosas pero no eran correctas:
· Dim myVBA As VBA
· Dim myVBA As Object
Set myVBA = CreateObject("VBA.Application")Se te ocurre como poder acceder al VBA de Corel para acceder desde esta a los objetos de Corel?
- Propuesto como respuesta Ronald Giles viernes, 2 de marzo de 2012 6:41
- Votado como útil Ronald Giles viernes, 2 de marzo de 2012 6:42
-
Hola VB6.0_User estoy interesado en saber manipular corel draw desde visula basic, podrias facilitarme una demo mi correo es giles.ronald@hotmail.com