Sí, vale, pero
Busca Facturas y
Busca Albaranes han de ser una función (por ejemplo) que realice o bien un Locate sobre las tablas pertienentes, o una sentencia SQL o lo que nos de la gana. Si la elección fuera la del Locate, se puede hacer todo directamente en el mismo IF y ahorrarnos la variable
De hecho, yo más o menos suelo hacer lo mismo que tu, pero en lugar de la variable, pongo un Exit
Código Delphi
[-]
function TMiClase.BorraCliente(Codigo: integer): boolean
begin
Result := false;
if TieneFacturas(Codigo) then Exit;
if TieneAlbaranes(Codigo) then Exit;
....
Result := true;
end;
Como suelo hacer funciones, el que se encarga de mostrar o no el mensaje será el que llame a ésta.
No obstante, como ya decía anteriormente y comentas muy bien, sin saber exactamente lo que pretende conseguir con esos Locates, es hablar por hablar