Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Changing Methods field in MyForm.SCX
Message
 
 
To
10/04/1998 14:25:03
General information
Forum:
Visual FoxPro
Category:
Forms & Form designer
Miscellaneous
Thread ID:
00090757
Message ID:
00091176
Views:
29
>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
df (was a 10 time MVP)

df FoxPro website
FoxPro Wiki site online, editable knowledgebase
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform