ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Erro: Undeclared identifier: "VarArrayHIghBound"

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
ombrerico
Novato
Novato


Registrado: Quarta-Feira, 16 de Dezembro de 2015
Mensagens: 10

MensagemEnviada: Sáb Mai 13, 2017 10:57 pm    Assunto: Erro: Undeclared identifier: "VarArrayHIghBound" Responder com Citação

function in_array(i_nr,i_array : boolean) : boolean;
var k : Integer;
begin
result:=false;
for k:=0 to VarArrayHighBound(i_array,1) do begin
if i_nr=i_array[k] then begin
result:=True;
break;
end;
end;
end;
Erro: Undeclared identifier: "VarArrayHIghBound"
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
leo_cj
Colaborador
Colaborador


Registrado: Sábado, 26 de Março de 2011
Mensagens: 1335

MensagemEnviada: Seg Mai 15, 2017 8:56 am    Assunto: Responder com Citação

A biblioteca Variants está sendo referenciada na uses do formulário?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
ombrerico
Novato
Novato


Registrado: Quarta-Feira, 16 de Dezembro de 2015
Mensagens: 10

MensagemEnviada: Seg Mai 15, 2017 9:31 am    Assunto: Responder com Citação

Var VarArrayHighBound : Integer; // ok assim funciona
ou
Eu sei que ela percorre todo a array até o seu final.
Logo seu valor no caso é 37.

Então eu posso substituir esse termo VarArrayHighBoun pelo número 37 que vai funcionar
da mesma forma, porem obtenho outro erro.

function in_array(i_nr,i_array : boolean) : boolean;
var k : Integer;
begin
result:=false;
for k:=0 to 37(i_array,1) do begin
if i_nr=i_array[k] then begin
result:=True;
break;
end;
end;
end;

Erro: Missing operator or semicolon
Erro aqui: (i_array,1)

O que você acha?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
natanbh1
Colaborador
Colaborador


Registrado: Terça-Feira, 15 de Março de 2011
Mensagens: 3093
Localização: Belo Horizonte - MG

MensagemEnviada: Seg Mai 15, 2017 3:01 pm    Assunto: Responder com Citação

Mantenha se código com VarArrayHighBound e adicione na uses:

// Delphi's novos
Código:
System.Variants

ou
// Delphi's antigos
Código:
Variants

_________________
''A persistência é o caminho para o êxito.''
Charlie Chaplin
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
ombrerico
Novato
Novato


Registrado: Quarta-Feira, 16 de Dezembro de 2015
Mensagens: 10

MensagemEnviada: Seg Mai 15, 2017 5:28 pm    Assunto: Responder com Citação

natanbh1 escreveu:
Mantenha se código com VarArrayHighBound e adicione na uses:

// Delphi's novos
Código:
System.Variants

ou
// Delphi's antigos
Código:
Variants


Sim amigo eu vi que já está declarada no uses.

Achei a solução assim:

Substituir VarArrayHighBound(i_array,1) por 37
que é o valor total da array que ela vai retornar

Então funciou,

obrigado pela atenção.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
leo_cj
Colaborador
Colaborador


Registrado: Sábado, 26 de Março de 2011
Mensagens: 1335

MensagemEnviada: Seg Mai 15, 2017 6:31 pm    Assunto: Responder com Citação

Você pode fazer assim também:
Código:
for Cont := 0 to High(SeuArray) do


Assim, se eventualmente o seu array tiver uma quantidade de registros diferente de 37 funcionará da mesma forma.

o problema de deixar fixo é que se o array tiver mais do que 37 o seu for não contemplará todos os registros desejados, e caso tenha menos, será exibido um erro de index out of bounds se não me engano
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
ombrerico
Novato
Novato


Registrado: Quarta-Feira, 16 de Dezembro de 2015
Mensagens: 10

MensagemEnviada: Seg Mai 15, 2017 7:49 pm    Assunto: Responder com Citação

Sim é verdade.

O código é em pascal e funciona 100%
mas quando jogado em Delphi tudo para.

Terei que recriar tudo do zero.

Obrigado pela ajuda.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB