Hola enecumene.-
Es extraño, estas seguro que el campo que quieres comprobar es el 19?
has revisado con breakpoints y watches los valores de la comparación?
intenta utilizar para estar bien seguros FieldByName('NombreCampo') en lugar de Fields[n] es decir:
Código Delphi
[-]
actual: if ZPedido.Fields[19].Value=Null then
.
intenta:if ZPedido.FieldByName('NombreCampo').Value=Null then
vamos probando para ver que pasa, pero comprueba como te dije antes, si es que no lo has hecho, los valores de los datos a comparar en el primer caso ZPedido.Fields[19].Value y vamos viendo que nos va dando.