Página 1 de 1

Coisas que não sei pra que serve

Enviado: 04 Abr 2017 22:42
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

Coisas que não sei pra que serve

Enviado: 05 Abr 2017 13:22
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

Coisas que não sei pra que serve

Enviado: 05 Abr 2017 13:44
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.

Coisas que não sei pra que serve

Enviado: 05 Abr 2017 13:54
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.

Coisas que não sei pra que serve

Enviado: 05 Abr 2017 17:21
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.