Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Remove classes from memory
Message
From
17/10/2005 13:00:03
 
 
To
All
General information
Forum:
Visual FoxPro
Category:
Object Oriented Programming
Title:
Remove classes from memory
Miscellaneous
Thread ID:
01059638
Message ID:
01059638
Views:
46
Pessoal,

Considerem o exemplo abaixo:

No método newClasse2 da Classe1,
Se eu instanciar Classe2 será emitida a mensagem "Remove classes from memory" quando eu tentar editar o código, o que indica que objetos ficaram em memória.
Se eu instanciar ClasseAbstrata a mensagem "Remove classes from memory" não é emitida quando eu tentar editar o código, o que indica que objetos não ficaram em memória.

Preciso criar uma classe abstrata e especificá-la somente com as características particulares de cada classe, mas quando faço assim, os objetos ficam em memória e quando começam a aumentar alguns problemas começam a acontecer no sistema. Como posso subclassificar uma classe sem que ela fique em memória depois que o objeto sair de escopo ?
Local lo as Classe1
Clear
lo = NewObject("Classe1")
lo.newClasse2()
lo.Testar()
***************** Classe1 ********************************
Define class Classe1 as ClasseAbstrata
  Procedure newClasse2 as Boolean
    Local loClasse2 as Classe2, loEmpty as Empty
    loClasse2 = NewObject("Classe2")         && Where try to edit this code I       get the message "Remove classes from memory"
*    loClasse2 = NewObject("ClasseAbstrata") && Where try to edit this code I don't get the message "Remove classes from memory"
    loClasse2.Testar()
    this.oRef.Add(loClasse2, "1")
  EndProc
EndDefine
***************** Classe2 ********************************
Define class Classe2 as ClasseAbstrata
EndDefine
***************** ClasseAbstrata *************************
Define class ClasseAbstrata as Custom
  oRef = null
  Procedure Init
    this.oRef = CreateObject("Collection")
    ? this.Class + " - No Init"
  EndProc
  Procedure Destroy
    ? this.Class + " - No Destroy"
  EndProc
  Procedure Testar
    ? this.Name + " funcionando - " + Time()
  EndProc
EndDefine
Reply
Map
View

Click here to load this message in the networking platform