Hola Alfil123, creo que lo que pasa ahi es lo siguiente: el evento DataChange se va a llamar cuando le asignes un valor a cualquier campo, lo que quiere decir que al tratar de asignar al primer campo (
docente.ap) el evento se va a disparar. Lo siguiente que va a pasar es que va a entrar en el condicional:
Código Delphi
[-]if NOT ADOQuery1.EOF then
ADOQuery1.EOF será igual a
true porque estas insertando con la función
append que te crea un registro vacio al final. Por consiguiente creo que se ejecutará el bloque:
Código Delphi
[-]
...
else
begin
le_id01.Clear;
LabeledEdit2.Clear;
LabeledEdit3.Clear;
LabeledEdit4.Clear;
LabeledEdit5.Clear;
...
end;
y al tratar de continuar asignando campos la rutina se encontrará que los LabeledEdit estan limpios.
Prueba poner ese código en algun otro evento, como por ejemplo en el evento
AfterPost. Saludos.