Coisas que não sei pra que serve

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Coisas que não sei pra que serve

Mensagem por JoséQuintas »

Tem isto na OOHG, em mais de um lugar.
O que faz esse EMPTY ?
É xHarbour?

Código: Selecionar todos

CLASS TScrollButton FROM TControl

   VAR    Type     INIT "SCROLLBUTTON" READONLY
   VAR    ladjust  INIT .F.

   METHOD Define( ControlName, ParentForm, x, y, w, h )
   EMPTY( _OOHG_AllVars )

   ENDCLASS
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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Coisas que não sei pra que serve

Mensagem por JoséQuintas »

Hoje encontrei esta na hwgui.
Esse CLASS VAR é o mesmo que VAR ?

Código: Selecionar todos

CLASS HAnimation INHERIT HControl

CLASS VAR winclass   INIT "SysAnimate32"

   DATA cFileName
   DATA xResID

   METHOD New( oWndParent, nId, nStyle, nLeft, nTop, nWidth, nHeight, ;
               cFilename, lAutoPlay, lCenter, lTransparent, xResID )
   METHOD Activate()
   METHOD Init()
   METHOD Open( cFileName )
   METHOD Play( nFrom, nTo, nRep )
   METHOD Seek( nFrame )
   METHOD Stop()
   METHOD Close()
   METHOD Destroy()
   METHOD End() INLINE ::Destroy()

ENDCLASS

METHOD New( oWndParent, nId, nStyle, nLeft, nTop, nWidth, nHeight, ;
            cFilename, lAutoPlay, lCenter, lTransparent, xResID ) CLASS HAnimation
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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Coisas que não sei pra que serve

Mensagem por JoséQuintas »

Não é a mesma coisa.
Mas tem uma curiosidade no ppo:

Código: Selecionar todos

_HB_MEMBER { winclass } ; oClass:AddMultiClsData(, "SysAnimate32", nScope + iif( .F., 16, 0 ) + iif( .F., 32, 0 ) + iif( .F., 256, 0 ) + iif( .F., 2048, 0 ), {"winclass"}, .F. )
   _HB_MEMBER { cFileName } ; oClass:AddMultiData(,, nScope + iif( .F., 16, 0 ) + iif( .F., 256, 0 ) + iif( .F., 2048, 0 ), {"cFileName"}, .F. )
   _HB_MEMBER { xResID } ; oClass:AddMultiData(,, nScope + iif( .F., 16, 0 ) + iif( .F., 256, 0 ) + iif( .F., 2048, 0 ), {"xResID"}, .F. )
Na maioria dos casos, usa isto: iif( .F., 8, 0 ) + iif( .F., 256, 0 ) + iif( .F., 2048, 0 )
que equivale a 0 (zero)
Parece código inútil adicionado nos fontes.

Lógico... nem sempre vai ser 0, mas acaba dando a impressão de que seria melhor declarar igual ao ppo e reduzir fonte.
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/
marcosgambeta
Usuário Nível 3
Usuário Nível 3
Mensagens: 332
Registrado em: 16 Jun 2005 22:53

Coisas que não sei pra que serve

Mensagem por marcosgambeta »

JoséQuintas escreveu:Hoje encontrei esta na hwgui.
Esse CLASS VAR é o mesmo que VAR ?
Sim. Mas é uma propriedade da classe que é compartilhada por todos os objetos dela.

Veja este exemplo:

Código: Selecionar todos

PROCEDURE Main ()

   LOCAL o1
   LOCAL o2

   o1 := A()
   ? o1:var1

   o2 := A()
   ? o2:var1

   o1:var1 := o1:var1 + 1

   ? o1:var1
   ? o2:var1

   WAIT

RETURN

#include "hbclass.ch"

CLASS A

   CLASS VAR var1 INIT 0

END CLASS
Note que ao mudar o valor em um objeto, o outro reflete a mudança.

É um recurso que pode ser útil de muitas maneiras.
Atenciosamente,
Marcos Antonio Gambeta
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Coisas que não sei pra que serve

Mensagem por JoséQuintas »

Já achei até uma utilidade.
Mas ainda não serve de imediato.

Código: Selecionar todos

    cnMySql := ADOClass():New( AppcnMySqlLocal() )
Ao invés de atribuir a conexão a cada instância da classe, já ficaria fixa.
Mas precisarei uma classe diferente pra cada servidor.
Como a conexão do servidor é sempre a mesma, eliminaria muito desse código acima.

Valeu.
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/
Responder