Saber os Métodos de um Objeto/Classe
Moderador: Moderadores
Saber os Métodos de um Objeto/Classe
Pessoal,
Tem como no harbour saber os métodos de um objeto exemplo oWebService := Win_OleCreateObject("MSXML2.ServerXMLHTTP"), tem como listar os métodos do objeto MSXML2.ServerXMLHTTP ? sem ter que ir procurar o google ou página de pesquisa?
E de uma classe exemploe:
oPdf := PdfPrintClass():New()
Quais os métodos da classe PdfPrintClass ?
Tem como no harbour saber os métodos de um objeto exemplo oWebService := Win_OleCreateObject("MSXML2.ServerXMLHTTP"), tem como listar os métodos do objeto MSXML2.ServerXMLHTTP ? sem ter que ir procurar o google ou página de pesquisa?
E de uma classe exemploe:
oPdf := PdfPrintClass():New()
Quais os métodos da classe PdfPrintClass ?
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Saber os Métodos de um Objeto/Classe
Alguma função não sei, mas via DEBUG conseguimos ter acesso ao q não for HIDDEN ou PRIVATE.
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Saber os Métodos de um Objeto/Classe
Tem função pra isso sim, pelo menos pra classes criadas pelo Harbour.
Só não sei dizer qual é, e pesquisar isso na internet é difícil.
Para outras classes, não sei se a mesma coisa serve.
Em último caso uso a IDE do VB6, que tem isso.
Só não sei dizer qual é, e pesquisar isso na internet é difícil.
Para outras classes, não sei se a mesma coisa serve.
Em último caso uso a IDE do VB6, que tem isso.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Saber os Métodos de um Objeto/Classe
Quintas,
Seria legal agente ter isso no fórum, montar um banco de informações dos recursos que o harbour pode obter.
Iria ajudar muitos.
Como não temos uma ide iagual c#, delphi temos que descobrir na internet como os métodos de um objetos funcionam e quais valores de set/get passar
Seria legal agente ter isso no fórum, montar um banco de informações dos recursos que o harbour pode obter.
Iria ajudar muitos.
Como não temos uma ide iagual c#, delphi temos que descobrir na internet como os métodos de um objetos funcionam e quais valores de set/get passar
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Saber os Métodos de um Objeto/Classe
Por coincidência, comentários recentes na hbnfe:
Eis que surge
https://msdn.microsoft.com/pt-br/librar ... s.85).aspx
Código: Selecionar todos
CreateObject( "ServerXMLHTTP" )
Código: Selecionar todos
CreateObject( "ServerXMLHTTP.6.0" )
Código: Selecionar todos
CreateObject( "Msxml2.ServerXMLHTTP.6.0" )
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Saber os Métodos de um Objeto/Classe
E referenciando o XML 6. 0, mostra como sendo parte de MSXML2
Ainda não sei se isso poderia resolver o problema de diferença entre Harbour/xHarbour.
No Vb6 acaba aparecendo um mini-manual, mas não sei se isso depende de alguma outra coisa.
Com certeza o XML 6.0 não é do tempo do VB6, veio depois.
Ainda não sei se isso poderia resolver o problema de diferença entre Harbour/xHarbour.
No Vb6 acaba aparecendo um mini-manual, mas não sei se isso depende de alguma outra coisa.
Com certeza o XML 6.0 não é do tempo do VB6, veio depois.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Saber os Métodos de um Objeto/Classe
O meu VB6 é pirata, conforme recomendado pelo suporte da Microsoft.
Tenho licença pro VB.NET, que dá direito ao VB6. O suporte da Microsoft realmente disse isso pra mim, do pirata, pois eles não tinham mais oficial pra mandar.
Naquela época não existiam as versões Express grátis, mas custou muuuito mais barato do que qualquer produtinho xBase.
Aliás isso sempre foi uma parte chata:
Qualquer porcaria que fazem pro xBase custa caro, mesmo as coisas grátis pra outras linguagens.
Até usar DBF em VB6 era grátis, com direito a comandos SQL inclusive.
Talvez tenha algo parecido no compilador C, que usamos pra compilar o Harbour e fontes em geral, pra isso de DLLs.
Se fizerem pro Harbour, provavelmente vão cobrar.
Não sei se com isso do Visual Studio grátis, se dá direito ao VB6 grátis também.
Na época que comprei foi 5 pagamentos de 100 reais, acho que até na época foi mais barato que comprar um Windows.
Nessa mesma época, acho que o xHarbour custava uns 5.000 reais, não tinha IDE, e dependia de assinatura pra atualizar.
Até hoje ainda não tem recursos que o VB6 tinha.... rs
Tenho licença pro VB.NET, que dá direito ao VB6. O suporte da Microsoft realmente disse isso pra mim, do pirata, pois eles não tinham mais oficial pra mandar.
Naquela época não existiam as versões Express grátis, mas custou muuuito mais barato do que qualquer produtinho xBase.
Aliás isso sempre foi uma parte chata:
Qualquer porcaria que fazem pro xBase custa caro, mesmo as coisas grátis pra outras linguagens.
Até usar DBF em VB6 era grátis, com direito a comandos SQL inclusive.
Talvez tenha algo parecido no compilador C, que usamos pra compilar o Harbour e fontes em geral, pra isso de DLLs.
Se fizerem pro Harbour, provavelmente vão cobrar.
Não sei se com isso do Visual Studio grátis, se dá direito ao VB6 grátis também.
Na época que comprei foi 5 pagamentos de 100 reais, acho que até na época foi mais barato que comprar um Windows.
Nessa mesma época, acho que o xHarbour custava uns 5.000 reais, não tinha IDE, e dependia de assinatura pra atualizar.
Até hoje ainda não tem recursos que o VB6 tinha.... rs
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
-
Claudio Soto
- Colaborador

- Mensagens: 566
- Registrado em: 27 Ago 2012 12:31
- Localização: Uruguay
- Contato:
Saber os Métodos de um Objeto/Classe
Estas son unas funciones de HMG Debugger para listar los métodos y valores de los objectos, están incluidas en la carpeta de HMG Oficial c:\hmg.3.4.2\source\debugger\dbgHB.prg
Pueden ser fácilmente adaptables, espero que les sea útil.
Usar así:
Pueden ser fácilmente adaptables, espero que les sea útil.
Usar así:
Código: Selecionar todos
LOCAL aItems, cVarName, xVarValue, aObjRawValue
cVarName := "oMiVar"
xVarValue := oMiVar
aItems := HMG_Debugger():GetObjectInfo( cVarName, xVarValue, @aObjRawValue )
Código: Selecionar todos
METHOD GetObjectInfo( cObjName, oObject, aObjRawValue ) CLASS HMGDebugger
LOCAL aVars, aMethods, i
LOCAL xValue, cValType, cValue
LOCAL arr := {}
#define _OBJ_SEP_ ":"
aObjRawValue := {}
IF ValType( oObject ) != "O"
::GUIMessageBox( "GetObjectInfo: Invalid data type ( ValType: " + ValType( oObject ) + " )" ) // GUI: message box info
ELSE
aVars := __objGetMsgList( oObject ) // create list of object messages
aMethods := __objGetMethodList( oObject ) // create list of object method
FOR i := 1 TO Len( aVars )
xValue := __dbgObjGetValue( oObject, aVars[i] )
cValType := Valtype( xValue )
cValue := __dbgValToStr( xValue )
IF Len( cValue ) > VAR_MAX_LEN
cValue := Left( cValue, VAR_MAX_LEN )
ENDIF
AAdd( arr, { cObjName + _OBJ_SEP_ + aVars[i], cValType, cValue } )
AAdd( aObjRawValue, xValue )
NEXT
FOR i := 1 TO Len( aMethods )
AAdd( arr, { cObjName + _OBJ_SEP_ + aMethods[ i ], "", "Method" } )
AAdd( aObjRawValue, NIL )
NEXT
ENDIF
RETURN arr
FUNCTION __dbgValToStr( uVal )
LOCAL cType := ValType( uVal ), i, s, nLen
DO CASE
CASE uVal == NIL ; RETURN "NIL"
CASE cType == "B" ; RETURN "{|| ... }"
CASE cType == "A"
s := ""
nLen := Min( 8, Len( uVal ) )
FOR i := 1 TO nLen
s += '"' + Valtype( uVal[i] ) + '"' + Iif( i==nLen, "", ", " )
NEXT
IF nLen < Len( uVal )
s += ", ..."
ENDIF
RETURN "Array(" + hb_ntos( Len( uVal ) ) + "): { " + s + " }"
CASE cType $ "CM" ; RETURN '"' + uVal + '"'
CASE cType == "L" ; RETURN Iif( uVal, ".T.", ".F." )
CASE cType == "D" ; RETURN DToC( uVal )
CASE cType == "T" ; RETURN hb_TToC( uVal )
CASE cType == "N" ; RETURN Str( uVal )
CASE cType == "O" ; RETURN "Class " + uVal:ClassName() + " object"
CASE cType == "H" ; RETURN "Hash(" + hb_ntos( Len( uVal ) ) + ")"
CASE cType == "P" ; RETURN "Pointer"
ENDCASE
RETURN "U"
STATIC FUNCTION __dbgObjGetValue( oObject, cVar, lCanAcc )
LOCAL xResult
LOCAL oErr
IFFAIL( NIL )
BEGIN SEQUENCE WITH {|| Break() }
xResult := __dbgSENDMSG( t_oDebugger:nProcLevel, oObject, cVar )
lCanAcc := .T.
RECOVER
BEGIN SEQUENCE WITH {| oErr | Break( oErr ) }
/* Try to access variables using class code level */
xResult := __dbgSENDMSG( 0, oObject, cVar )
lCanAcc := .T.
RECOVER USING oErr
xResult := oErr:description
lCanAcc := .F.
END SEQUENCE
END SEQUENCE
RETURN xResult
Saber os Métodos de um Objeto/Classe
Olá Dr. Claudio,
Obrigado por compartilhar conosco, esta função funciona no exemplo: win_OleCreateObject("WScript.Shell") ? ou só objetos criados pelo harbour?
Obrigado por compartilhar conosco, esta função funciona no exemplo: win_OleCreateObject("WScript.Shell") ? ou só objetos criados pelo harbour?
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
-
Claudio Soto
- Colaborador

- Mensagens: 566
- Registrado em: 27 Ago 2012 12:31
- Localização: Uruguay
- Contato:
Saber os Métodos de um Objeto/Classe
Hola Asimoes,
estas funciones solo listan las clases creadas por Harbour.
estas funciones solo listan las clases creadas por Harbour.