* 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