Mmmm. Sí, supongo. Es una tontería mía por querer optimizar sin pensarlo bien.
Intenta así:
Código Delphi
[-]
procedure TF_ModulDades.ParticipacioDIVENDRESValidate(Sender: TField);
begin
if (UpperCase(ParticipacioDIVENDRES.Value) <> 'S') and (UpperCase(ParticipacioDIVENDRES.Value) <> 'N') then
raise Exception.Create('Valor no vàlid, sols S o N');
end;
En el evento OnValidate, no en el OnChange.
// Saludos