Excelente! Solo te falto que el primer char sea mayusucula como pide el amigo. El dice que esta en mayusculas ya, pero por si acaso...
Código Delphi
[-]var apellido:string;
i,j:integer;
begin
for i:=1 to Table.RecordCount do
begin
apellido:= Tabla.FieldByName('Apellido').AsString;
apellido[1]:=uppercase(apellido[1]);
for j:=2 to length(apellido) do
begin
apellido[j]:=lowercase(apellido[j]);
end;
Tabla.FieldByName('Apellido').AsString:=apellido;
end;
end;