Если регистр не имеет значения и нужно считать только количество букв, не считая знаки препинания и т.д., отлично подойдет вот такой способ.
Код:
procedure CalculateSymbols(Text: string);
var
S: string;
M: array ['а'..'я'] of Integer;
I: Char;
J: Integer;
begin
S := AnsiLowerCase(Text);
for I := 'а' to 'я' do
M[i] := 0;
for J := 1 to Length(S) do
Inc(M[S[J]]);
for I := 'а' to 'я' do
Writeln(I + ': ' + IntToStr(M[i]));
end;