Du gehst einfach iterativ durch den String durch. Der erste Buchstabe nach einem Leerzeichen (oder der erste buchstabe überhaupt) wird groß, der Rest klein geschrieben.
Delphi-Quellcode:
Var
bFirst : boolean;
i : Integer;
Begin
bFirst := True; // <-- Nachträglich eingefügt
For i := 1 to Length (aWord) do Begin
If bFirst Then begin
aWord[i] := Upc(aWord[i]);
bFirst := False;
end
else
aWord[i] := LowerCase(aWord[i]);
bFirst := (aWord[i]=' ');
End;
End;