Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: nhaalclkiemr en 5 Enero 2008, 21:42 pm



Título: ¿Se pueden utilizar interfaces en Visual Basic 6.0?
Publicado por: nhaalclkiemr en 5 Enero 2008, 21:42 pm
Pues eso, si se pueden usar interfaces en Visual Basic 6.0?? Se que en las nuevas versiones de Visual Basic (.NET) si se puede pero en la 6.0 no se...

Y weno en el caso de que si se pueda como se haría claro...

Saludos ;)


Título: Re: ¿Se pueden utilizar interfaces en Visual Basic 6.0?
Publicado por: Mad Antrax en 6 Enero 2008, 01:31 am
que coño son las "interfaces"?

xD :rolleyes:


Título: Re: ¿Se pueden utilizar interfaces en Visual Basic 6.0?
Publicado por: ~~ en 6 Enero 2008, 01:42 am
Yo desde luego en VB6 nunca las e usado y no se si existiran la verdad, me parece a mi q es mas propio de C++ xD

de todas maneras, para q kieres usarlo, q seguro (q pese a las limitaiones de vb) podemos apañarte algo  :P

que coño son las "interfaces"?

xD :rolleyes:

http://www.dei.inf.uc3m.es/docencia/p_s_ciclo/tdp/curso0203/apuntes/basicas.pdf
http://www.alkon.com.ar/foro/programacion.76/463914-poo_interfaces/

Por poner un par de ejemplos de lo q hay por google ;)


Título: Re: ¿Se pueden utilizar interfaces en Visual Basic 6.0?
Publicado por: foobar en 6 Enero 2008, 03:54 am
No existe una forma de crear -explícitamente- una interfaz, pero se puede hacer creando un módulo de clase con los prototipos de las funciones y eventos estableciendolo como PublicNotCreatable, y luego implementarlo utilizando la palabra clave Implements:

Código
  1. '
  2. ' Modulo de clase: MyInterface.cls
  3. '
  4.  
  5. Option Explicit
  6.  
  7. Sub Foo()
  8.  
  9. End Sub
  10.  
  11. Function Something(ByVal Arg As String)
  12.  
  13. End Function
  14.  

Código
  1. '
  2. ' Modulo de clase: MyClass.cls
  3. '
  4. Option Explicit
  5.  
  6. Implements MyInterface
  7.  
  8. Property Get ClassName()
  9.    ClassName = "Test Class"
  10. End Property
  11.  
  12. Private Sub MyInterface_Foo()
  13.    Debug.Print "Foo called from MyClass"
  14. End Sub
  15.  
  16. Private Function MyInterface_Something(ByVal Arg As String) As Variant
  17.    Debug.Print "Something from MyClass like: " & Arg
  18. End Function
  19.  

Código
  1. '
  2. ' Módulo estándar Test.bas
  3. '
  4. Option Explicit
  5.  
  6. Sub Test()
  7.    Dim csInterface As MyInterface
  8.    Dim csClass     As New MyClass
  9.  
  10.    Debug.Print csClass.ClassName
  11.  
  12.    Set csInterface = csClass
  13.  
  14.    Call csInterface.Something("Hola Mundo")
  15. End Sub
  16.  

Fijate que cuando se ejecute Test, lo que va a estar llamando es a la función implementada en MyClass, por lo que el output sería algo así:

Código:
Test Class
Something from MyClass like: Hola Mundo

Bytez.


Título: Re: ¿Se pueden utilizar interfaces en Visual Basic 6.0?
Publicado por: nhaalclkiemr en 6 Enero 2008, 06:38 am
Yo al principio pensaba que eran objetos y que había que crearlos con CreateObject() pero después por lo que vi en MSDN no...

Pues voy a provar lo que dice Seykron...

Yo las quiero por lo que digo en este post:

http://foro.elhacker.net/index.php/topic,194021.0.html (http://foro.elhacker.net/index.php/topic,194021.0.html)

Y al final buscando llegué aki:

http://msdn2.microsoft.com/en-us/library/aa381274(VS.85).aspx (http://msdn2.microsoft.com/en-us/library/aa381274(VS.85).aspx)

Y fue la unica manera de lograr ejecutar una tarea programada ya establecida sin depender de programas externos...miré de alguna API pero no encontré nada...

Saludos y ya os contaré ;)

EDIT: Me acabo de dar cuenta de que lo que dice Seykron sirve para crear interfaces...pero yo no quiero crear interfaces...sino usar una ya creada...se puede??