Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Does UDF exist?
Message
General information
Forum:
Visual FoxPro
Category:
Other
Title:
Environment versions
Visual FoxPro:
VFP 9 SP1
Miscellaneous
Thread ID:
01516054
Message ID:
01517003
Views:
60
As I read your message I realize that perhaps I need to refactor this function into a method of application object. I have always thought that use of application object should be done vary sparingly since it adds to the application memory footprint. But this particular function is just 2 lines as the following:
FUNCTION GetFieldCaption
LPARAMETERS nFieldId
RETURN (gaFieldCaption[nFieldId])
And the array gaFieldCaption used by the function is PUBLIC so making it into the property of the application object will not increase the application memory use.

Thank you for your input.

>TYPE("Expression()") is the best way to do this. Type evaluates whatever expression you feed it and then returns the type value. I use this all the time and it definitely works, but you have to understand that when you call TYPE("SomeFunction()") you are actually executing SomeFunction() just in order to get the type which may or may not be a problem.
>
>In general it's a bad idea to call TYPE() on executing code expressions - all sorts of unpredictable things can happen especially if you don't set up the code execution environment.
>
>A better and safer way to do this is to use a Class and methods - If you do that you can use PEMSTATUS() to figure out whether a method exists.
>
>+++ Rick ---
>
>
>
>>>>Hi,
>>>>
>>>>Is there a method/approach to determine if a user-defined function exists? For example, say the application may or may not have a function MyFunct(). I thought that TYPE() would work but it does not seem to.
>>>>Here is how I used TYPE() in this case:
>>>>
>>>>? TYPE('MyFunct()')
>>>>
>>>>
>>>>But it seem to always return "U". Is there another method?
>>>
>>>
lbYesFunc = .t.
>>>TRY
>>>   lnResult = MyFunct()
>>>CATCH
>>>   lbYesFunc = .f. 
>>>ENDTRY 
>>>
>>>IF NOT lbYesFunc
>>>   MESSAGEBOX([Function don't exists])
>>>ENDIF
>>
>>Thank you. I was hoping that I would not have to run/execute the function to find out if it exists. But if this is the only way, so be it.
"The creative process is nothing but a series of crises." Isaac Bashevis Singer
"My experience is that as soon as people are old enough to know better, they don't know anything at all." Oscar Wilde
"If a nation values anything more than freedom, it will lose its freedom; and the irony of it is that if it is comfort or money that it values more, it will lose that too." W.Somerset Maugham
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform