Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Access Method
Message
General information
Forum:
Visual FoxPro
Category:
Classes - VCX
Title:
Miscellaneous
Thread ID:
01672305
Message ID:
01672318
Views:
83
Hi Dmitry,

You can read this "book":
https://github.com/MJindrova/Gramaire

MartinaJ



>>>>>>>>>Hi,
>>>>>>>>>
>>>>>>>>>I looked at the VFP 9 help but the explanation of Access method is not easily understood. Could someone explain the purpose, the use, and advantages of using the Access Method (e.g. something_Access).
>>>>>>>>>
>>>>>>>>>TIA
>>>>>>>>
>>>>>>>>Tamar explains it well in this article: http://www.tomorrowssolutionsllc.com/Articles/Put%20Access%20methods%20to%20work.pdf
>>>>>>>>And this is one of Doug's articles: http://doughennig.com/Papers/Pub/AccessAssign.pdf
>>>>>>>
>>>>>>>Thank you, Tore.
>>>>>>
>>>>>>You're welcome.
>>>>>>
>>>>>>Just to give you one sample. I use business classes for all my tables. For each field I have access methods, which all are something like this:
>>>>>>
>>>>>>*Myfield_access
>>>>>>Return Evaluate(Myfield)
>>>>>>
>>>>>>So when I want to read this field value, I simply call MyClass.MyField.
>>>>>>
>>>>>>Likewise, I have an "opposite" method Myfield_assign which I use to change the field value.
>>>>>
>>>>>Your example is much easier to read than many pages of an article. Thank you.
>>>>>I have to follow with a very newbie question.
>>>>>How is your Myfield_access different from assigning the value of the field to a property and getting the value from a property directly?
>>>>
>>>>The property Myfield in a way is this property you mention. It hides all the logic necessary to read and write to the table.
>>>>
>>>>Another sample is a business class for contact information. You have a property for first name, middle name, last name and full name. The three first have access methods to read the corresponding field values from the contact info table, using Evaluate(). The property FullName contains no value, instead it contains this code:
>>>>
>>>>*FullName_access
>>>>lcReturn = Alltrim(This.firstname) + ' '
>>>>If !Empty(This.middlename
>>>>   m.lcReturn = m.lcReturn + Alltrim(This.middlename) + ' '
>>>>Endif
>>>>m.lcReturn = m.lcReturn + Alltrim(This.lastname)
>>>>Return m.lcReturn
>>>>
>>>>One last comment: I really encourage you to read the two documents, assign and access methods can make your life so much easier.
>>>
>>>I was writing a reply to your message (actually a question) but someone called and I lost my message.
>>>Here is my question.
>>>My understanding is that Access "hides" the implementation but does not really make the execution any faster (correct me if I am wrong).
>>>The reason I am checking this method is if it applies to the following situation:
>>>My application has a global object (oApp). I want to add a property to this global object, oApp.text_forecolor and set the value of this property (at the top of the application). E.g.
>>>
>>>oApp.text_forecolor = "230,23,44"
>>>
>>>
>>>Then every text box of the application, when being instantiated, will set the forecolor to this value. Example:
>>>
>>>*-- Some textbox
>>>INIT Method
>>>this.forecolor = oApp.text_forecolor
>>>
>>>
>>>Would it make more sense (for the speed) to use the Access method instead of the INIT method to set the textbox ForeColor?
>>>
>>>Thank you.
>>
>>I don't think there will be any noticeable speed difference. But you don't really need to set this value programmatically at all. Instead you create a forecolor_access method:
>>
>>*Textbox.forecolor_access
>>return  oApp.text_forecolor
>>
>>If your application has a subclassed textbox class (and it really should), you only need to do this in this subclass.
>
>Thank you very much. I will try the approach you suggest.
"Navision is evil that needs to be erazed... to the ground"

Jabber: gorila@dione.zcu.cz
Jabber? Jabbim
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform