Clipper On Line • Ver Tópico - Só pra deixar na vontade.

Só pra deixar na vontade.

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

 

Só pra deixar na vontade.

Mensagempor JoséQuintas » 22 Set 2020 20:11

Vocês devem ter visto isto:

FUNCTION MAIN()

   LOCAL oP

   CLS
   oP := TPublic():New()
   op:nome     := "Nome teste"
   ? op:Seila()
   Inkey(0)

   RETURN Nil

#include "hbclass.ch"

CLASS TPublic

   ERROR HANDLER ONERROR( uParam1 )

   ENDCLASS

METHOD ONERROR( ... ) CLASS TPublic

   LOCAL cCol    := __GetMessage()
   LOCAL uRet

   ? "ERR", cCol, uParam1
   IF Left( cCol, 1 ) == "_" // com traço é variável
      cCol = Right( cCol, Len( cCol ) - 1 )
      IF ! __objHasData( Self, cCol )
         __objAddData( Self, cCol )
      ENDIF
      IF uParam1 == nil
         uRet = __ObjSendMsg( Self, cCol )
      ELSE
         uRet = __ObjSendMsg( Self, "_" + cCol, uParam1 )
      ENDIF
   ELSE
      uRet := "method not created"
      // IF ! __ObjHasMethod( Self, cMethod )
      //    __ObjAddMethod( Self, cMethod, pFunc )
      // ENDIF
   ENDIF

   RETURN uRet


Só imaginem as possibilidades, Self:name neste exemplo não é o nome correto, e dependeria de usar previamente a classe:

METHOD ONERROR( ... ) CLASS TPublic

   LOCAL cCol    := __GetMessage()
   LOCAL uRet

   ? "ERR", cCol, ...
   IF Left( cCol, 1 ) == "_" // com traço é variável
      IF uParam1 == nil
         uRet = GetProperty( :Self:Name, ... ) // HMG
      ELSE
         uRet = SetProperty( :Self:Name, ... ) // HMG
      ENDIF
   ELSE
      DoMethod( cCol, ... ) // HMG
   ENDIF

   RETURN uRet


Isso permitira usar, por exemplo:

Form1:Refresh()
Form1:BackColor := 5
x := Form1:BackColor

Com certeza nada mais ficaria compatível, mas mostra possibilidades interessantes.
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 14703
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 867 vezes



Retornar para MiniGui

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 1 visitante


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro