Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Code completion não funciona


Guest João Cunha

Pergunta

Guest João Cunha

Olá a todos!

Programo em outras linguagens, mas estou começando com Delphi. Fiz um programa para copiar arquivos aqui no trabalho que está funcionando normalmente, mas em determinados momentos o auto completion simplesmente pára de funcionar.

Já debugguei, chequei a sintaxe, comentei linha a linha, recortei, etc, e simplesmente não consigo achar a falha. O Delphi acusa erro no código, mas tenho certeza que está tudo correto, estou achando que é algum problema de instalação. Se alguém puder dar uma força, segue o código:

procedure TMainForm.btnAtualizarClick(Sender: TObject);
var origem, destino: string;
    x: integer;
begin
   for x := 0 to (adoCat.RecordCount -1) do
   begin
      while not adoCat.Eof do           
      begin
         adoCur.Close();
         adoCur.Filter := 'ck_cronograma = 1 AND cd_categoria = ' + adoCatcd_categoria.Text;
         adoCur.Filtered := true;
         adoCur.Open();

         while not adoCur.Eof do
         begin
            origem := txtOrigem.Text + adoCatcd_categoria.Text + '.jpg';
            destino := txtDestino.Text + adoCurtx_internet.Text + '.jpg';

            if not FileExists(origem) then
             begin
               memoLog.Lines.Add('ERRO - ' + origem);
               break;
            end;

            if FileExists(origem) and not FileExists(destino) then
            begin
               CopyFile(PChar(origem), PChar(destino), true);
               memoLog.Lines.Add('OK - ' + destino);
               adoCur.Next();
            end;
         end;
         adoCat.Next();
      end;
   end;
end;

Valeu, um abraço a todos!

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0
Já debugguei, chequei a sintaxe, comentei linha a linha, recortei, etc, e simplesmente não consigo achar a falha. O Delphi acusa erro no código, mas tenho certeza que está tudo correto

For e while costuma não dar muito certo ... ou use um ou use outro

por exemplo:

for x := 0 to (adoCat.RecordCount -1) do

voce colocou um comando For para contar seus registros do inicio ao fim ... então porque utilizar

while not adoCat.Eof do

para testar o fim do arquivo ?

OBS: experimente tirar esse while do codigo e veja o que acontece.

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
Guest João Cunha
Já debugguei, chequei a sintaxe, comentei linha a linha, recortei, etc, e simplesmente não consigo achar a falha. O Delphi acusa erro no código, mas tenho certeza que está tudo correto

For e while costuma não dar muito certo ... ou use um ou use outro

por exemplo:

for x := 0 to (adoCat.RecordCount -1) do

voce colocou um comando For para contar seus registros do inicio ao fim ... então porque utilizar

while not adoCat.Eof do

para testar o fim do arquivo ?

OBS: experimente tirar esse while do codigo e veja o que acontece.

abraço

Olá Jhonas, obrigado por responder.

Realmente esse um desses dois loops está sobrando. Testei removendo ambos, e nada. O programa funciona normalmente, mas o code completion não. Estou achando que foi algum erro durante a instalação dos componentes, ou algo assim.

Link para o comentário
Compartilhar em outros sites

  • 0

O erro é:

Incapaz de invocar conclusão de código devido a erros no codigo fonte

então voce deve procurar no codigo o comando que está provocando este erro...

sugestão refaça o codigo por partes e vá testando.

tambem experimente tirar os parenteses de:

adoCur.Close();

adoCur.Open();

adoCur.Next();

adoCat.Next();

acho que não são necessarios.

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
Guest João Cunha
O erro é:

Incapaz de invocar conclusão de código devido a erros no codigo fonte

então voce deve procurar no codigo o comando que está provocando este erro...

sugestão refaça o codigo por partes e vá testando.

tambem experimente tirar os parenteses de:

adoCur.Close();

adoCur.Open();

adoCur.Next();

adoCat.Next();

acho que não são necessarios.

abraço

Removi os parênteses, e nada. Um colega de trabalho abriu meu .dpr em sua máquina, nada também. De repente ele resolveu reescrever algumas linhas do código e voilá - autocompletion funcionando.

É, mais um daqueles bugs que não fazem o menor sentido, mas foi corrigido. Talvez o Delphi tenha salvado algum log ou algo assim, e quando reescrito voltou a funcionar. Se souber o motivo, compartilhe!

Um abraço, obrigado pela força.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...