** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Referenciar una estructura por puntero
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Referenciar una estructura por puntero

 Responder Responder
Autor
Mensaje
aldebaran Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 30/Enero/2010
Estado: Sin conexión
Puntos: 1
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita aldebaran Cita  ResponderRespuesta Enlace directo a este mensaje Tema: Referenciar una estructura por puntero
    Enviado: 19/Julio/2020 a las 12:03
Estoy intentando programar VBA en ACCESS utilizando Clases. Quiero migrar software digamos normal a una orientación a objeto y estoy haciendo pruebas.
Quiero que desde el interior de una clase se referencia una estructura externa a la clase. 
Para ello intento definir no una estructura, sino el puntero o la referencia a una estructura.
Seguidamente intentaría pasar la estructura externa por referencia para que el puntero se quedara con la referencia a esta estructura.
No se si se puede hacer. Parece que cuanto trabajas con objetos lo normal es que utilices el puntero al objeto, pero si trabajas con estructuras no puede tomar referencia a la estructura.
¿Es ésto así?
Arriba
lbauluz Ver desplegable
Administrador
Administrador
Avatar

Unido: 29/Marzo/2005
Localización: Binghamton Jail
Estado: Sin conexión
Puntos: 3559
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita lbauluz Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 20/Julio/2020 a las 18:06
Pues hace años que no toco eso con VBA, pero mira a ver si te vale 

VarPTR, strPTR, ObjPTR o VarPTRArray (no recuerdo si había más tipos de punteros)

Un ejemplo de declaración es (hay más modos de declararlos)

Private Declare PtrSafe Function ArrPtr& Lib "msvbvm60.dll" Alias "VarPtr" (ptr() As Any)

Luego en la aplicación haz

Dim ptr1 As LongPtr
Dim MyLong As Long

MyLong = 10
ptr1 = VarPtr(MyLong)



Pero buscando VarPTR en la web, seguro que encuentras 100 ejemplos.

Un saludo.

Luis


Hay un culto a la ignorancia y siempre lo ha habido y es alimentado por la falsa noción de que democracia significa que "mi ignorancia es tan buena como su conocimiento". (Isaac Asimov)
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable