* OpenAllMethods.prg 08-Aug-02 * this function opens all overridden methods local laJunk[1], loOutermost set step on =aselobj(laJunk,1) * filename, [classname] needed inside recursive function private lcFile, lcClass lcFile = upper( sys( 1271, laJunk[1] ) ) * find the outermost object loOutermost = laJunk[1] if ( "VCX" $ lcFile ) do while ( ( type( "loOutermost.parent" ) == "O" ) and ; ( type( "loOutermost.parent.parent.parent" ) == "O" ) ) loOutermost = loOutermost.parent enddo lcClass = loOutermost.Name else do while ( type( "loOutermost.parent" ) == "O" ) loOutermost = loOutermost.parent enddo endif DrillDown( loOutermost ) return function DrillDown( loObject ) * find the full containership name local lcObjectName, loFullname lcObjectName = "" loFullname = loObject do while ( type( "loFullname.parent" ) = "O" ) lcObjectName = loFullname.Name + "." + lcObjectName loFullname = loFullname.parent enddo * strip off the outermost container lcObjectName = substr( lcObjectName, at( '.', lcObjectName ) + 1 ) local i, n, laMembers[1], lcMethod n = amembers( laMembers, loObject, 1, 'C' ) for i = 1 to n if ( laMembers[i,2] $ "Method Event" ) lcMethod = lcObjectName + laMembers[i,1] * debugout ">" + lcMethod + "<" * if ( ".SCX" $ lcFile ) * modify form (lcFile) nowait method &lcMethod * else * modify class (lcClass) of (lcFile) nowait method &lcMethod * endif DO CASE CASE ( ".SCX" $ lcFile ) modify form (lcFile) nowait method &lcMethod CASE ( ".VCX" $ lcFile ) *-- Strip class from Method lcMethod = JUSTEXT(lcMethod) modify class (lcClass) of (lcFile) nowait method &lcMethod OTHERWISE modify class (lcClass) of (lcFile) nowait method &lcMethod ENDCASE endif endfor * process contained objects n = amembers( laMembers, loObject, 2 ) for i = 1 to n DrillDown( evaluate( "loObject." + laMembers[i] ) ) endfor return