Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Changing Methods field in MyForm.SCX
Message
From
10/04/1998 20:53:46
 
General information
Forum:
Visual FoxPro
Category:
Forms & Form designer
Miscellaneous
Thread ID:
00090757
Message ID:
00091239
Views:
22
David,

Excellent head start. Thank you! Looks like a weekend of fun coming up ... I enjoy working at this level.

Bob

..............................
>>Thanks for the warning David. I've re-read Steven Black's Hook Operations article from the Aug. 1997 FoxTalk and now realize that it's not as straight forward as I thought. There are some subclassing issues to consider.
>
>Yes there are. *g*
>
>>Could you suggest the best source of info on the Reserved memo fields and order dependent issues.
>
>I don't know of a real good reference. I think Drew Speedie's Devcon session had a scx/vcx hack editor, might be some stuff in his code. I've just figured it out by hacking it or seeing other messages arount. Check to see if you can find Tom Rettig's PRGToVCX utility. Here's one code fragment of mine that deals with Reserved3 memo
>
>
      * process custom properties and methods
>      if ( ! empty( InputFile.Reserved3 ) )
>         ?
>         ? "Custom Properties and Methods:"
>         ?
>         lnCustom = memlines( InputFile.Reserved3 ) - 1
>         dimension laCustom[m.lnCustom, 4]
>         lnLength = 0
>         for i = 1 to m.lnCustom
>            * parse out name and comment
>            lcCustom = mline( InputFile.Reserved3, i )
>            j = at( ' ', m.lcCustom )
>            if ( j > 0 )
>               laCustom[i,1] = left( m.lcCustom, j - 1 )
>               laCustom[i,2] = substr( m.lcCustom, j + 1 )
>            else
>               laCustom[i,1] = m.lcCustom
>               laCustom[i,2] = ""
>            endif
>
>            * determine whether it's a property, method or array
>            c = left( laCustom[i,1], 1 )
>            do case
>               case ( c == '*' )
>                  laCustom[i,3] = 'M'
>               case ( c == '^' )
>                  laCustom[i,3] = 'A'
>               otherwise
>                  laCustom[i,3] = 'P'
>            endcase
>            if ( laCustom[i,3] != 'P' )
>               * strip off marker character
>               laCustom[i,1] = substr( laCustom[i,1], 2 )
>            endif
>
>            laCustom[i,1] = CorrectCase( laCustom[i,1] )
>            laCustom[i,4] = ( laCustom[i,1] $ InputFile.Protected )
>            lnLength = max( m.lnLength, len( laCustom[i,1] ) )
>         endfor
>
>         * sort properties and methods and output
>         = asort( laCustom )
>         lnLength = lnLength + 1
>         for i = 1 to m.lnCustom
>            if ( laCustom[i,4] )
>               ? "   Protected "
>            else
>               ? "   Public    "
>            endif
>            do case
>               case ( laCustom[i,3] $ "PA" )
>                  ?? " Property "
>               case ( laCustom[i,3] $ "M" )
>                  ?? " Method   "
>            endcase
>            ?? padr( laCustom[i,1], lnLength )
>            ?? laCustom[i,2]
>         endfor
>      else
>         lnCustom = 0
>      endif
Previous
Reply
Map
View

Click here to load this message in the networking platform