Hola.
ExtractFileName devuelve el nombre y extensión,
ExtractFilePath la ruta y
ExtractFileExt la extensión.
Conozco dos modos de obtener lo que buscas, este es uno:
Código Delphi
[-]
var
NomSinExt: string;
begin
NomSinExt:= Copy(ExtractFileName(NomArch), 1, Pos(ExtractFileExt(NomArch),ExtractFileName(NomArch))-1);
...
O más simple, aunque confuso por el nombre de la misma, con la función
ChangeFileExt:
Código Delphi
[-]
var
NomSinExt: string;
begin
NomSinExt:= ChangeFileExt(ExtractFileName(NomArch), '');
...
Saludos.
Edito: En los ejemplos
NomArch equivale a
OpenPictureDialog1.FileName.