Creación de clases nuevas desde código DEFINE CLASS

232 views
Skip to first unread message

Juan Carlos M

unread,
Feb 21, 2023, 7:12:35 PM2/21/23
to Comunidad de Visual Foxpro en Español


Saludos compañeros

Disculpen la duda, debe ser algo muy básico para ustedes pero, estoy dando mantenimiento a un Sistema en VFP 6 y solo utilizo las clases que ya existen, 
pero necesito funcionalidades nuevas y encontré esta clase para "detectar inactividad"


pero no se donde copiar el código para crear la clase, intente en la ventana de comandos y manda :

VFP_CREATE_CLASS.PNG

Pude generar un "cascarón de clase" en el entorno gráfico del IDE, pero no me permite o no se donde agregar las propiedades ni los metodos de la nueva clase que vienen en el enlace, podrían apoyarme ?.

Desde ya MIL GRACIAS.



Victor Espina

unread,
Feb 22, 2023, 8:40:55 AM2/22/23
to Comunidad de Visual Foxpro en Español
Las definiciones de clase via DEFINE CLASS deben ir dentro de un archivo PRG.  Las propiedades se definen simplemente incluyendo una linea dentro del bloque DEIFNE CLASS - ENDDEFINE (preferiblemente al inicio):

propiedad = valor

y los metodos/eventos se declaran tambien dentro del mismo bloque pero con PROCEDURE:

PROCEDURE mimetodo
   ...
ENDPROC


Tambien puedes crear clases visualmente con el comando CREATE CLASS, el cual si se ejecuta en la ventana de comandos.


Victor Espina

Juan Carlos M

unread,
Feb 23, 2023, 10:26:42 AM2/23/23
to Comunidad de Visual Foxpro en Español
Saludoa a todos y gracias de antemano

Generé el archivo .PRG  y al llamar a la clase desde mi programa de  INICIO.PRG   
con el código mencionado en el artículo:

CLEAR 
PUBLIC tmrCheck 
tmrCheck = NEWOBJECT("DetectActivity") 
RETURN

pareciera que no reconoce la clase.  ¿ Que estare haciendo mal o que paso estoy omitiendo ?


VFP_DETECT_ACTIVITY.PNG

Victor Espina

unread,
Feb 23, 2023, 12:37:01 PM2/23/23
to Comunidad de Visual Foxpro en Español
Debes cargar el PRG con SET PROCEDURE o, en su defecto, indicar el PRG en NEWOBJECT:

tmrCheck = NEWOBJECT("DetectActivity","detecactivity.prg")


Dicho esto, por favor no lo tomes a mal, pero creo que esta siendo irresponsable al tomar el mantenimiento de un sistema cuando CLARAMENTE no dominas ni los temas mas basicos del desarrollo con VFP.   Mi opinion.


Victor Espina
Reply all
Reply to author
Forward
0 new messages