Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Can a class see what it's instantiated as?
Message
De
09/10/2015 09:16:46
Lutz Scheffler
Lutz Scheffler Software Ingenieurbüro
Dresden, Allemagne
 
Information générale
Forum:
Visual FoxPro
Catégorie:
Classes - VCX
Versions des environnements
Visual FoxPro:
VFP 9 SP2
OS:
Windows XP SP2
Network:
Windows 2008 Server
Database:
MS SQL Server
Application:
Desktop
Divers
Thread ID:
01625748
Message ID:
01625753
Vues:
68
>>I have a moment of brain shortage, right now I can't see the forest for all the trees. Is it possible from within an object to know what is the name it's instantiated as? Given this code
>>
>>
>>loCountries = NewObject('SqlTable','SQL.vcx')
>>
>>In this case I want the class SqlTable to understand that it's instantiated as loCountries. I am building a rather complicated generic class to work with SQL tables. My idea is that if I call the object for instance loCountries, my class can be smart enough to know that I want it to connect to the SQL table called Countries.
>
>You can use AINSTANCE, but not in Init, you should call dedicated method.
>after the Init of the class.
>
>CLEAR
>test = CREATEOBJECT([TestMe])
>test.CheckInstance()
>
>DEFINE CLASS TestMe AS Custom
>
>
>
>  PROCEDURE Init
>****        this.CheckInstance()
>  ENDPROC 
>  
>  PROCEDURE CheckInstance
>      AINSTANCE(aVars,[TestMe])
>      DISPLAY MEMORY  LIKE aVars
>  ENDPROC 
>  
>  
>ENDDEFINE
>
O.K something new :)

But:
(snip)
Only class instances assigned to variables and array elements with CREATEOBJECT( ) or NEWOBJECT( ) are placed into the array.
(/snip)
So properties and collections will be ignored.
Words are given to man to enable him to conceal his true feelings.
Charles Maurice de Talleyrand-Périgord

Weeks of programming can save you hours of planning.

Off

There is no place like [::1]
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform