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: 20420
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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: 20420
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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: 20420
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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: 20420
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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