As vezes queremos saber todos os métodos de um determinado objeto, durante o debug conseguimos visualizar os métodos mas como poderíamos salvar todos eles?

Ai que entra a classe ClassMethArr, essa classe retorna um array multidimensional com todas as informações sobre os métodos do objeto passado no parâmetro.

Exemplo de uso do código pode ser baixado aqui.

#Include "Protheus.ch"

/*/{Protheus.doc} areaQuad
Essa classe retorna um array multidimensional com todas as informações sobre os métodos do objeto passado no parâmetro.
@type function
@author  Rafael Gonçalves
@since janeiro/2020
@version 12.1.25
@param nil
@return nil
/*/
user function sempreju()
    u_SPCLASSM()
return

User Function SPCLASSM()

//Exemplo de objeto
oMsDialog := MSDialog():New(180,180,550,700,'Exemplo MSDialog',,,,,CLR_BLACK,CLR_WHITE,,,.T.)

//Parametro 1 - Objeto
//Parametro 2 - Se verdadeiro (.T.) retorna todos os parametros, inclusive os parâmetros herdados de outras classes, adiciona o nome da classe na 3ª coluna do array
aMethods := ClassMethArr(oMsDialog, .T.)
cMethods := PadR("METHOD", 30) + "|OWNER" + CRLF

//Concateno todas as informações
For nI := 01 To Len(aMethods)
    cMethods += PadR(AllTrim(aMethods[nI, 01]), 30) + "|" + AllTrim(aMethods[nI, 03]) + CRLF
Next nI

//Salvo
MemoWrite("D:\Rafael\Workspace_SemPreju\SemPreju-Exemplos\Exemplos\Classes\FWMBrowse_Methods.txt", cMethods) //Salva resultado da ClassMethArr

Return .t.

Bom pessoal, por hoje é só. Qualquer dúvida ou seguestão entre em contato

Abraços e até a próxima.

Categorias: ADVPL

0 comentário

Deixe um comentário