Página 1 de 1

__EnumLast()

Enviado: 13 Ago 2021 16:08
por JoséQuintas
Estou tentando usar e dá erro.

Alguém pode testar se também dá erro no 3.2

Código: Selecionar todos


procedure Main
LOCAL oElement
   SetMode(25,80)
   SetColor("W/B")
   CLS
   FOR EACH oElement IN { 1, 2, 3, 4 }
      ? oElement:__EnumIndex()
      ? oElement:__EnumLast()
   NEXT
   Inkey(0)

   RETURN

__EnumLast()

Enviado: 13 Ago 2021 16:46
por ANDRIL
José, testei aqui e deu erro.
1
Error BASE/1005 No exported variable: _ENUMLAST
Called from __ENUMLAST(0)
Called from MAIN(8)
Uso Harbour 3.2.0dev (r1502201040)

__EnumLast()

Enviado: 13 Ago 2021 16:54
por JoséQuintas
Será que o erro é nesse nome dentro da função?
tem um traço a menos.

__EnumLast()

Enviado: 13 Ago 2021 17:09
por alxsts
Olá!
JoséQuintas escreveu:Será que o erro é nesse nome dentro da função? tem um traço a menos.
Não... testei com 1,2,3 e sem traço e o erro é o mesmo citado acima...

Já estes abaixo funcionam...

Código: Selecionar todos

      hVal := { "ABC" => 123, "ASD" => 456, "ZXC" => 789 }
      
      FOR EACH x IN hVal
         ? x:__enumIndex(), ":", x:__enumKey(), "=>", x:__enumValue(), ;
           "=>", x:__enumBase()[ x:__enumKey() ]
           ? oElement:__enumStart(), oElement:__enumStop(), oElement:__enumSkip() 
      NEXT

      FOR EACH x IN { "ABC" => 123, "ASD" => 456, "ZXC" => 789 }
         ? x, "@", x:__enumKey()
      NEXT
Harbour 3.2.0dev (r1612161005)

__EnumLast()

Enviado: 13 Ago 2021 17:26
por Itamar M. Lins Jr.
Olá!
Na minha opinião é um BUG do Harbour 3.2
No 3.4 funciona ?

Saudações,
Itamar M. Lins Jr.

__EnumLast()

Enviado: 13 Ago 2021 19:24
por JoséQuintas
Nenhum.
Coloquei pra procurar enumlast em tudo que é arquivo do harbour 3.2 e 3.4
Só encontra isto no changelog.txt de 2014.01.21

Código: Selecionar todos

    % use :__enumFirst() / :__enumLast()
Nada em nenhum outro lugar.

__EnumLast()

Enviado: 15 Ago 2021 14:40
por alxsts
Olá!

Conforme respondido no grupo Harbour Users, há um erro de digitação no changelog. O nome correto das propriedades é __enumIsFirst e __enumIsLast.

Vejam: For...Each...Next

__EnumLast()

Enviado: 17 Ago 2021 11:05
por Kapiaba

__EnumLast()

Enviado: 17 Ago 2021 11:43
por JoséQuintas
É que seria algo muito útil, e como encontrei no changelog, achei que existia.

Por exemplo:

Código: Selecionar todos

FOR EACH aItem IN FuncaoRetornaArray()
   GrafTempo( atual, ultimo??? )
NEXT
Acaba sendo necessário atribuir a uma variável primeiro.
E o retorno vai ser "grandão". por isso o gráfico de tempo, que também poderia ser uma progressbar.