Esto no es dificil de lograr:
Código Delphi
[-]
function EsMayuscula(const s : string) : boolean;
var
i : integer;
begin
result := true;
for i := 1 to length(s) do
if s[i] <> upper(s[i]) then
begin
result := false;
break;
end;
end;
Tiene el "inconveniente" que te devolverá true si preguntas por EsMayusculas(''), lo cual ni es cierto ni deja de serlo. Te dejo la tarea de especializarla para cambiar este comportamiento si queres que sea diferente.
Hasta luego.