A raíz del último comentario, una forma de optimizar podría ser:
Código Delphi
[-]
FUNCTON Comprobar: BOOLEAN;
BEGIN
Result := FALSE;
IF A = B THEN
BEGIN
IF B = C THEN
Result := TRUE;
END;
END;
Como ves, Result sólo se asigna en dos puntos y la propia lógica "te lleva fuera". Además reduces en operaciones ya que no tienes que hacer:
Código Delphi
[-]
result := StrToDate(fecha_creacion.Text)<=StrToDate(fecha_aprobacion.Text);
if (result=FALSE) then ...