| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
ombrerico Novato

Registrado: Quarta-Feira, 16 de Dezembro de 2015 Mensagens: 10
|
Enviada: Sáb Mai 13, 2017 10:57 pm Assunto: Erro: Undeclared identifier: "VarArrayHIghBound" |
|
|
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 |
|
 |
leo_cj Colaborador

Registrado: Sábado, 26 de Março de 2011 Mensagens: 1335
|
Enviada: Seg Mai 15, 2017 8:56 am Assunto: |
|
|
| A biblioteca Variants está sendo referenciada na uses do formulário? |
|
| Voltar ao Topo |
|
 |
ombrerico Novato

Registrado: Quarta-Feira, 16 de Dezembro de 2015 Mensagens: 10
|
Enviada: Seg Mai 15, 2017 9:31 am Assunto: |
|
|
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 |
|
 |
natanbh1 Colaborador

Registrado: Terça-Feira, 15 de Março de 2011 Mensagens: 3093 Localização: Belo Horizonte - MG
|
Enviada: Seg Mai 15, 2017 3:01 pm Assunto: |
|
|
Mantenha se código com VarArrayHighBound e adicione na uses:
// Delphi's novos
ou
// Delphi's antigos
_________________ ''A persistência é o caminho para o êxito.''
Charlie Chaplin |
|
| Voltar ao Topo |
|
 |
ombrerico Novato

Registrado: Quarta-Feira, 16 de Dezembro de 2015 Mensagens: 10
|
Enviada: Seg Mai 15, 2017 5:28 pm Assunto: |
|
|
| natanbh1 escreveu: | Mantenha se código com VarArrayHighBound e adicione na uses:
// Delphi's novos
ou
// Delphi's antigos
|
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 |
|
 |
leo_cj Colaborador

Registrado: Sábado, 26 de Março de 2011 Mensagens: 1335
|
Enviada: Seg Mai 15, 2017 6:31 pm Assunto: |
|
|
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 |
|
 |
ombrerico Novato

Registrado: Quarta-Feira, 16 de Dezembro de 2015 Mensagens: 10
|
Enviada: Seg Mai 15, 2017 7:49 pm Assunto: |
|
|
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 |
|
 |
|