Uso de la clase collection

29/08/2003 - 03:45 por Sebastian Biglia | Informe spam
Necesito una pequeña ayuda con la clase collection.

Creo una Dll con el siguiente codigo:

DEFINE CLASS Manzana as Custom OF Barrio OLEPUBLIC

Numero=""
oCasas=""

Procedure Init
This.oCasas=CREATEOBJECT("Collection")
EndProc

Procedure NuevaCasa(vCalle, vNumero, vTelefono, vFamilia)
Local vCasaTemp
vCasaTemp=CreateObject("Casas")
With vCasaTemp
.Calle=vCalle
.Numero=vNumero
.Telefono=vTelefono
.Familia=vFamilia
End With
This.oCasas.Add(vCasaTemp)
EndProc

ENDDEFINE

DEFINE CLASS Casas as Session OF Barrio OLEPUBLIC

Calle=""
Numero=0
Telefono=""
Familia=""

ENDDEFINE

Compilo el .prg y luego cuando uso la libreria en otro proyecto puedo ver
todas las propiedades y metodos del objeto Manzana, pero no asi los de la
coleccion oCasas, como puedo hacer para que estos aparezcan al tipear el .
en el intellisense.

Si escribo:

Local oPrueba as Manzana
oPrueba=CreateObject("Manzana")
? oPrueba.oCasas.Count -> Esta linea funciona perfectamente devuelve 0
^ Pero intellisense funciona hasta aqui nomas

Como se soluciona este problema?.

Espero que puedan enteder a que me estoy refiriendo.

Gracias


PortalFox :: Nada corre como un zorro
http://www.portalfox.com

PortalFox - NNTP Forum Gateway

Preguntas similare

Leer las respuestas

#1 Esparta Palma
29/08/2003 - 17:48 | Informe spam
Lo que pasa es que las definiciones que toma el Intellisense son
estáticas, así que al leer la clase Manzana, la propiedad oCasas *no* es
una colección, sino mas bien una cadena.
Si deseas que lo reconozca oCasas como una colección tendrás que
declararla como tal, esto se hace con la clausula ADD OBJECT, con esto
tambien no necesitarás instanciarla en el INIT.


DEFINE CLASS Manzana as Custom OF Barrio OLEPUBLIC
ADD OBJECT oCasas AS Collection
Numero = ""
PROCEDURE NuevaCasa(cValle,vNumer,vTelefono,vFamilia)
Local vCasaTemp
vCasaTemp=CreateObject("Casas")
With vCasaTemp
.Calle=vCalle
.Numero=vNumero
.Telefono=vTelefono
.Familia=vFamilia
End With
This.oCasas.Add(vCasaTemp)
ENDPROC
ENDDEFINE

Espero te sirva.


Apoya a Visual FoxPro usándolo legalmente
ž,ø€º°`°º€ø,žž,ø€º°`°º€ø,žž,ø€º°`°º€ø,žž,ø€º°`°º
Espartaco Palma Martínez
SysOp PortalFox ( http://www.PortalFox.com )
email:
Acapulco, Guerrero. México



Sebastian Biglia wrote:

Necesito una pequeña ayuda con la clase collection.

Creo una Dll con el siguiente codigo:

DEFINE CLASS Manzana as Custom OF Barrio OLEPUBLIC

Numero=""
oCasas=""

Procedure Init
This.oCasas=CREATEOBJECT("Collection")
EndProc

Procedure NuevaCasa(vCalle, vNumero, vTelefono, vFamilia)
Local vCasaTemp
vCasaTemp=CreateObject("Casas")
With vCasaTemp
.Calle=vCalle
.Numero=vNumero
.Telefono=vTelefono
.Familia=vFamilia
End With
This.oCasas.Add(vCasaTemp)
EndProc

ENDDEFINE

DEFINE CLASS Casas as Session OF Barrio OLEPUBLIC

Calle=""
Numero=0
Telefono=""
Familia=""

ENDDEFINE

Compilo el .prg y luego cuando uso la libreria en otro proyecto puedo ver
todas las propiedades y metodos del objeto Manzana, pero no asi los de la
coleccion oCasas, como puedo hacer para que estos aparezcan al tipear el .
en el intellisense.

Si escribo:

Local oPrueba as Manzana
oPrueba=CreateObject("Manzana")
? oPrueba.oCasas.Count -> Esta linea funciona perfectamente devuelve 0
^ Pero intellisense funciona hasta aqui nomas

Como se soluciona este problema?.

Espero que puedan enteder a que me estoy refiriendo.

Gracias


PortalFox :: Nada corre como un zorro
http://www.portalfox.com

PortalFox - NNTP Forum Gateway
Respuesta Responder a este mensaje
#2 Sebastian Biglia
30/08/2003 - 03:01 | Informe spam
Gracias por la respuesta, pero la probe y sigue sin funcionar.

El problema real es el siguiente, que implementa un modulo de contabilidad
a un sistema de una empresa de turismo para que realize los asientos
automaticamente de las operaciones de compras y ventas de paquetes ,
decidi hacerlo con una clase :

libroDiario
^- Asiento
^-Items
^ -Propiedades del item del
asiento

mi problema es como implementar esto utilizando las clases collection y no
le he encontrado la vuelta, ademas de que el intellisense deberia
funcionar para que sea mas facil utilizar la libreria.

Me podrian dar una manito con esto?, estoy bastante desubicado con esto de
la POO en Visual FoxPro ya que es la primera ves que intento utilizarla.

Muchas Gracias por la ayuda.



PortalFox :: Nada corre como un zorro
http://www.portalfox.com

PortalFox - NNTP Forum Gateway
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida