Otro detalle que noto es que está mandando los valores de las campos como si fueran cadenas de texto, o sea, entre comillas simples. No se si eso se pueda en MySQL, pero en otros manejadores me imagino que daría error de tipos no compatibles. Prueba tu query de esta forma:
Código Delphi
[-]
query.SQL.Text := 'UPDATE ' + bdticket + ' SET ptotal = ' + ptotal.caption + ' , pagado=' + editentrega.Text +
' , debe=' + floattostr(resto) + ' WHERE id=' + inttostr(idcabecera);
Lo cual te debe resultar en algo como:
Código SQL
[-]
UPDATE ticket SET ptotal=27,46, pagado=10,28, debe=17,18 WHERE id=492
Otra posibilidad es usar la función
format:
Código Delphi
[-]
query.SQL.Text := Format('UPDATE %s SET ptotal = %f, pagado = %f, debe = %f where id = %d',
[bdticket, StrToFloat(ptotal.caption), StrToFloat(editentrega.Text), resto, idcabecera]);
Saludos...