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
 

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

Preguntas similares