Não me agrada modificar a assinatura dos métodos existentes... a não ser que seja realmente necessário...
Nesse caso, preferi um código que seja capaz de detectar como o CEP deve ser alinhado, de acordo com o seu tamanho...
function FormatarCEP(const AValue: String): String;
Var
S : String ;
begin
S := OnlyNumber(AValue);
if Length(S) < 5 then
S := PadLeft( S, 5, '0'); // "9876" -> "09876"
if Length(S) = 5 then
S := PadRight( S, 8, '0') // "09876" -> "09876-000"; "18270" -> "18270-000"
else
S := PadLeft( S, 8, '0') ; // "9876000" -> "09876-000"
Result := copy(S,1,5) + '-' + copy(S,6,3) ;
end;
(Já está no SVN)