Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

E2010, E2015 Delphi no Curso

No penúltimo texto "Faça como eu fiz na aula" na 5ª Parte do Curso eu fiz como o professor escreveu para fazer uma rotina que imprima TODOS os registros da tabela dentro de um "memo". Fora um ";" no segundo "FieldByName" no While, porque ele dá problema de tipos incompatíveis e operador não aplicável no "+" e no ")" ?

procedure TForm1.btn_ListaClick(Sender: TObject);
begin
  X := 0;
  fdContatos.FIRST;
  WHILE NOT fdContatos.EOF DO
  BEGIN
    memo_Lista.LINES.ADD (
      fdContatos.FieldByName('id') + '  ' + //aqui - E2010 Incompatible types:  string and TField
      fdContatos.FIELDBYNAME('nome')
    ); //aqui - E2015 Operator not applicable to this operand type
    fdContatos.NEXT;
    X := X + 1;
  END;
  memo_Lista.LINES.ADD('Total de Registros = ' + INTTOSTR(X) )
end;

Queria que fosse possível sugerir alterações de código em textos nos cursos.

1 resposta
solução!

Não dá para "somar" string vazia com um "TField" É só colocar um ".Value" no fim dos "FieldByName".

Agora o meu problema é a mensagem de erro do meu Botão Lista: Could not convert variant of type (UnicodeString) into type (Double).