Hb_Default não funciona

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Avatar do usuário
carlaoonline
Usuário Nível 3
Usuário Nível 3
Mensagens: 190
Registrado em: 24 Ago 2014 22:38
Localização: Porto Alegre-RS

Hb_Default não funciona

Mensagem por carlaoonline »

Boa tarde!

Alguém sabe me dizer pq essa linha com Hb_Default não funciona?

Código: Selecionar todos

FUNCTION DBF2PDF( cFileToSave, cArqDbf, nAlturaLinha, cTitle, cSubTitle, aCampos, aTitulos, aTamanhoFonte )
// Hb_Default(aCampos, Campos2Array(cArqDbf) )
Hb_Default(@aCampos, Campos2Array(cArqDbf) )
Nenhuma acima surte efeito, mesmo mandando o parâmetro ele insiste em entrar na função Campos2Array(cArqDbf) para atribuir novo valor para a variável aCampos que já veio com valor. Já notei isso em outras funções também.


mas se usar a abaixo daí funciona.

Código: Selecionar todos

DEFAULT aCampos TO Campos2Array(cArqDbf)
???

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

Hb_Default não funciona

Mensagem por JoséQuintas »

Não lembro de ter usado com array.
Talvez considere o tamanho quando é array.

Mas nesse caso melhor o tradicional

Código: Selecionar todos

aCampos := iif( aCampos == Nil, Campos2Array(cArqDbf), aCampos )
Porque?
Porque com hb_Default, vai ter que processar a função pra poder comparar.
Com iif() só processa se vier vazio.
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

Hb_Default não funciona

Mensagem por JoséQuintas »

A checagem de DEFAULT é básica, não é igual hb_default()

Código: Selecionar todos

cTeste := ""
hb_Default( @cTeste, 1 )
Com DEFAULT o valor de cTeste deve ser ""
Com hb_Default() vai ser 1
Não é apenas teste de vazio, também compara o tipo, e provavelmente em array talvez compare o tamanho.
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