>LPARAMETERS oObj, cMethod >LOCAL nX, oComp >DO CASE > >* If this object has the method, run it >CASE PEMSTATUS(oObj, cMethod, 5) > EVALUATE ([oObj.] + cMethod + "()") > >* If this doesn't have a baseclass we can get to... (VFPSkins has this issue) >CASE PEMSTATUS(oObj, [BaseClass], 2) > *...we don't know to do > >* If this has a Controls array, go thru each component >CASE PEMSTATUS(oObj, [ControlCount], 5) AND oObj.ControlCount > 0 > FOR nX = 1 TO oObj.ControlCount > oComp = oObj.Controls[nX] > THISFORM.RunAll(oComp, cMethod) > ENDFOR > >* If this is a Grid, go thru each column >CASE oObj.BaseClass = [Grid] AND oObj.ColumnCount > 0 > FOR nX = 1 TO oObj.ColumnCount > oComp = oObj.Columns[nX] > THISFORM.RunAll(oComp, cMethod) > ENDFOR > >* If this is a PageFrame, go thru each page >CASE oObj.BaseClass = [Pageframe] AND oObj.PageCount > 0 > FOR nX = 1 TO oObj.PageCount > oComp = oObj.Pages[nX] > THISFORM.RunAll(oComp, cMethod) > ENDFOR > >* If we got here, we can't do anything with this object >ENDCASE >