Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Problem with initial value of property
Message
From
26/09/2012 16:44:40
 
 
General information
Forum:
Visual FoxPro
Category:
Classes - VCX
Environment versions
Visual FoxPro:
VFP 9 SP2
OS:
Windows XP SP2
Database:
Visual FoxPro
Miscellaneous
Thread ID:
01553671
Message ID:
01553704
Views:
102
It turns out, neither VFP nor its documentation are perfect!

The VFP documentation and debug teams are feverishly working on this issue as we speak!

/kidding

>Hi James,
>
>Well then, why is this not in the documentation?! It is very important to know this, isn't it. I can say I'm a really experienced vfp developer, doing vfp since 1990. But this has never been told or explained to me, nowhere, not in the docs, not in the Hackers guide. 'By-design' may be what has been told to you, but to me that sounds like a rationalisation, to hide the real reason: a design flaw or simply a blind spot for this when implementing it, in both cases a flaw they somehow didn't want to repair.
>
>Re-using the cached version of a previously instantiated object is smart enough, but of course that should not imply the re-use of any initial values.
>
>>Peter --
>>
>>By design.
>>
>>FoxPro does neat things with caching classes you have referenced so it does not have to re-create them from
>>scratch every time you use them.
>>
>>This is the same problem experienced in VCX-based classes where the property value is created with an '=',
>>which is executed the first time the class is created only.
>>
>>>Hi all,
>>>
>>>In the code hereunder the nStart property is set to the value of seconds() at the moment of creating the object. However, if I create another instance of the object (while the first is still active) the property does not get the value of seconds() of the moment of creation, but appears to be totally equal to the property of the first instance!
>>>
>>>I imagine I can get around this by redeclaring it in the Init(). But why is this happening? Another bug or 'just' a quirck? Or is it by-design??
>>>
>>>
DEFINE CLASS cusLogFileHandler AS custom
>>>	
>>>	nHandle    = 0
>>>	nErrors    = 0
>>>	dStart     = date()		&& start date - required for calculation of elapsed time
>>>	nStart     = seconds()
>>>	cFileName  = ""
>>>
>>>	PROCEDURE init( tcFileName, tlNew )
>>>		local lcWhat
>>>
>>>		with this
>>>			*
>>>
Regards. Al

"Violence is the last refuge of the incompetent." -- Isaac Asimov
"Never let your sense of morals prevent you from doing what is right." -- Isaac Asimov

Neither a despot, nor a doormat, be

Every app wants to be a database app when it grows up
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform