Página 2 de 2

Função STATIC em VALID

Enviado: 28 Jul 2017 11:10
por JoséQuintas
Assim funcionou, mas sem variável na macro.

Código: Selecionar todos

   LOCAL n, x := "Qualquer2()", GetList := {}
...
   @ 4, 1 GET n VALID Qualquer( n ) .AND. &(x)
e assim erro

Código: Selecionar todos

   @ 4, 1 GET n VALID Qualquer( n ) .AND. &x
desde que use a getsys original do Harbour, gera erro de compilação.
test.prg:9: error E0047 Code block contains both macro and declared symbol references 'N'

test.prg:9: error E0047 Code block contains both macro and declared symbol references 'X'

test.prg:9: error E0042 Macro of declared symbol '{|| Qualquer( n ) .AND. &x}'
Com a getsys do Clipper não dá esse alerta na compilação, e é quando ocorre erro em run-time.

Tá mais como curiosidade agora.
Acabou ficando resolvido com o FOR EACH que postei anteriormente, que eliminou a macro.

Função STATIC em VALID

Enviado: 28 Jul 2017 11:15
por JoséQuintas
Só pra concluir:

Cuidado com macros em gets, e também em codeblocks.
Nem sempre é o que parece.

Aliás.... reabrir com um último teste.... rs

Função STATIC em VALID

Enviado: 28 Jul 2017 11:18
por JoséQuintas
Pronto, um novo teste.
Assim acaba com qualquer dúvida, e com qualquer interferência.
Só substituir a macro por uma função.

Código: Selecionar todos

   @ 3, 1 GET n VALID Macro(x)
   @ 4, 1 GET n VALID Qualquer( n ) .AND. Macro(x)
...
FUNCTION Macro( x )
   RETURN &x