MenVar é Publica ?
Moderador: Moderadores
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
MenVar é Publica ?
Olá!
Preciso usar variáveis PRIVATE, mas com "-w3" não posso.
Sendo uma memvar publica, neste caso como apagar ela depois ?
Saudações,
Itamar M. Lins Jr.
Preciso usar variáveis PRIVATE, mas com "-w3" não posso.
Sendo uma memvar publica, neste caso como apagar ela depois ?
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
MenVar é Publica ?
Ola!
Parece que não tem como.
A forma melhor é começar usar OOP.
Saudações,
Itamar M. Lins Jr.
Eu quero é eliminar, não é limpar.Public variables are unaffected by this form of the RELEASE
command. To release public variables, you must RELEASE them explicitly
or use CLEAR MEMORY.
Parece que não tem como.
A forma melhor é começar usar OOP.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
MenVar é Publica ?
Declara pro fonte inteiro
Declara só pro módulo
É isso?
Isso passa no -w3, das duas formas.
é que PRIVATE e PUBLIC não declaram variáveis, é algo... desprezado (pra checagem). e dá erro se não declarar com MEMVAR primeiro.
Código: Selecionar todos
MEMVAR variavel
PROCEDURE Test
PRIVATE variavel
Código: Selecionar todos
PROCEDURE Test
MEMVAR variavel
PRIVATE variavel
Isso passa no -w3, das duas formas.
é que PRIVATE e PUBLIC não declaram variáveis, é algo... desprezado (pra checagem). e dá erro se não declarar com MEMVAR primeiro.
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/
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
MenVar é Publica ?
Achei isto no hbmemvar.ch
Parece que MEMVAR expande um pouco o que seria PRIVATE.
Talvez seja usada função pra definir se é PUBLIC,PRIVATE, e por isso precisa declarar primeiro.
E se declarar MEMVAR, até dispensa o PRIVATE, só vai compensar se atribuir valor, e olhe lá.
Código: Selecionar todos
/* Values returned from __mvScope() function */
#define HB_MV_NOT_FOUND -2 /* not found in the symbols table */
#define HB_MV_UNKNOWN -1 /* not created yet */
#define HB_MV_ERROR 0 /* information cannot be obtained */
#define HB_MV_PUBLIC 1 /* PUBLIC variable */
#define HB_MV_PRIVATE_GLOBAL 2 /* PRIVATE created outside of current function/procedure */
#define HB_MV_PRIVATE_LOCAL 4 /* PRIVATE created in current function/procedure */
#define HB_MV_PRIVATE 6 /* PRIVATE variable */
Talvez seja usada função pra definir se é PUBLIC,PRIVATE, e por isso precisa declarar primeiro.
E se declarar MEMVAR, até dispensa o PRIVATE, só vai compensar se atribuir valor, e olhe lá.
Código: Selecionar todos
MEMVAR x
PRIVATE x := 10
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
MenVar é Publica ?
Só lembrando:
MEMVAR não altera variável de PUBLIC pra PRIVATE, ou vice-versa.
A prova é que dá pra compilar pra ser declarado tudo automático como memvar, aonde não houver declaração (mesmo que exista PUBLIC/PRIVATE).
Só é perigoso usar o automático, porque até nome de campo pode virar variável.
Código: Selecionar todos
Syntax: harbour <file[s][.prg]|@file> [options]
Options: -a automatic memvar declaration
A prova é que dá pra compilar pra ser declarado tudo automático como memvar, aonde não houver declaração (mesmo que exista PUBLIC/PRIVATE).
Só é perigoso usar o automático, porque até nome de campo pode virar variável.
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/
-
Fernando queiroz
- Usuário Nível 4

- Mensagens: 779
- Registrado em: 13 Nov 2014 00:41
- Localização: Porto Alegre/RS
MenVar é Publica ?
Depois de uma aula do mestre Quintas sobre OOP já migrei tudo, e o mundo se abriu em possibilidadesItamar M. Lins Jr. escreveu: A forma melhor é começar usar OOP.
Saudações,
Itamar M. Lins Jr.
hoje declaro as variáveis dentro da classe que aceitam valores vindos de fora (publicas na classe)
ou as variáveis PROTECTED: visíveis em toda a classe mas não visível de fora
Código: Selecionar todos
CREATE CLASS PRODUTOSCLASS
VAR oServer
VAR cDefaultPrinter
VAR cReportOption
VAR nPrinterType
VAR dPeriodoInicial INIT (M->DAT_HOJE-30)
VAR dPeriodoFinal INIT (M->DAT_HOJE)
METHOD New( ParamServer ) INLINE ::oServer := ParamServer, Self
METHOD PRODUTOS_MANUTENCAO( )
METHOD PRODUTOS_PESQUISA( )
METHOD PRODUTOS_PESQUISA_COMPRAS( Fornecedor )
METHOD PRODUTOS_PESQUISA_TRANSFERENCIA( FINALIDADE )
METHOD PRODUTOS_PESQUISA_ENTRADA( Fornecedor )
PROTECTED:
VAR IncluiRemoto
VAR AtualizaRemoto
VAR ExcluiRemoto
VAR ConsultaRemoto
VAR cnConnection
VAR aFiliais INIT {}HARBOUR 3.2, HWGUI 2.23 B3, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart
MenVar é Publica ?
Eu declaro as variáveis com o seu tipo pra deixar claro
Código: Selecionar todos
VAR oJanela AS OBJECT INIT Nil
VAR oDlg_Thread AS OBJECT INIT "oDlg_Thread"
VAR bBlock AS CODEBLOCK INIT Nil
VAR oTimer AS STRING INIT "oTimerThread"
VAR nTimer AS INTEGER INIT 300 // 5 minutos
VAR cTipo AS STRING INIT "B"
VAR lLiga AS LOGICAL INIT .F.
VAR nFloat AS NUMERIC INIT 0.00
VAR dDataBeneficio AS DATE INIT CTOD("")
VAR aRegAntes AS ARRAY INIT {}
VAR hTable AS HASH INIT {=>}
►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)
