Mania do VB: var := NIL

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

Mania do VB: var := NIL

Mensagem por JoséQuintas »

Sempre estranhei isso no VB6, e vi também em vários fontes do Harbour.
Segundo o Przemysław Czerpak, não é necessário no Harbour.

oVar := Win_OleCreateObject("ddddd")
...
oVar := NIL

Essa última linha é mania herdada do VB, o Harbour faz o trabalho corretamente e não precisa disso.
Só comentário, porque vejo tanto isso em fontes Harbour que acabei ficando na dúvida.
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
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Mania do VB: var := NIL

Mensagem por fladimir »

José eu já vi após uma variável ser inicializada exemplo

cTeste := "Teste"

demais linhas

cTeste := NIL

Agora antes assim já declarar como NIL não vi, apesar de que qdo eu declaro

Local cVar1, cVar2, cVar3

Elas implicitamente estão sendo declaradas NIL.

[]´s
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Imatech
Usuário Nível 3
Usuário Nível 3
Mensagens: 350
Registrado em: 24 Ago 2010 23:48
Localização: Goiânia-GO

Mania do VB: var := NIL

Mensagem por Imatech »

Ok: não gera erro de execução nos programas em Harbour...

Entretanto se a variavel não foi instanciada como LOCAL: vale sim atribuir NIL na intenção de se liberar memoria...

Acredito: Seria interessante a existencia dos metodos free e/ou destroy para real eficiencia do procedimento ( release from memory poderia ser utilizado para provar tal necessidade )...



Abç...
M., Ronaldo

by: IMATECH

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

Mania do VB: var := NIL

Mensagem por JoséQuintas »

Sim, mas é que muitos usam isso até quando declaram variáveis locais.
No VB6 é que acabava sendo obrigatório isso, por prender o conteúdo das variáveis. Viravam o equivalente ao Static Var do clipper, e prendiam conteúdo.
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/
Imatech
Usuário Nível 3
Usuário Nível 3
Mensagens: 350
Registrado em: 24 Ago 2010 23:48
Localização: Goiânia-GO

Mania do VB: var := NIL

Mensagem por Imatech »

Notes for Harbour developers:
In order to make good use of the Qt classes, you should see the include file "hbqtgui.ch"
The path of this include is (for windows) /hbnn/include
You should consult the Nokia's offcial documentation
If possible, you must not use static variables
If you use static variables, you have to set them to NIL at exit of the program
You should disconnect the objects that were attached with the connect method
It is strongly recommended to use hbformat tool to format the .prg sources
To create a source, you can copy and paste the code to your text editor and save it with .prg extension
When you connect an object with a Signal, if must be passed as string.
Example: oButton1:Connect( "clicked()", { || QApplication():quit() } )
When you connect an object with a Event, if must be passed as constant.
Example: oWnd:connect( QEvent_KeyPress , { |k| keypressed( k ) } )
Remember to stop the object QTimer() at exit of the program, if you use it
The sources are formatted with "hbformat.exe" utility
Viktor Szakats / Giovanni Di Maria
M., Ronaldo

by: IMATECH

IMATION TECNOLOGIA
Responder