Lo que intuyes no puedes hacerlo rápidamente. Hay componentes para interpretar cadenas como expresiones matemáticas, quizás incluyan la función Ln y otras parecidas. Al menos en delphi (instalación estándar), no hay nada.
Para algo simple, puedes usar esto:
Código Delphi
[-]
var texto, parametro:string
posLn, pospar :integer; Posición del texto Ln y posición de los parámetros
texto := lowercase(trim(edit1.text)); PosLN = pos ('ln(',texto);
if pos <>0 then
begin parametro := texto;
delete(parametro, posLN+3); pospar := pos(')', parametro) ;
if pospar <>0 then
begin
parametro := copy(parametro, 1, pospar); ResultadoDelLogaritmo := Ln(StrToInt(parametro));
end;
end;
Otra opción es usar Expresiones regulares, busca en el foro por "RexExp" es algo más complejo, pero seguro que te sirve.
Saludos