DriveSoft wrote:Есть такой нюанс, если указывается, чем необходимо открыть данный файл, то сам файл является параметром для программы, которая открывает этот файл, а в параметрах к файлу пробелы допустимы, при условии если параметр в кавычках.
попробуйте так
var
prog,file:string;
begin
prog:= 'C:\Program Files (x86)\Windows NT\Accessories\wordpad.exe';
file:= '"D:\MailCloud\Программирование\My Visual Database\DistribCat\ReadMe.rtf"';
OpenFile(file,prog);
Проверил ещё раз это решение. Оно работает, если путь к файлу точно известен, а если надо использовать команды ExtractFilePath или ExtractFileDir, то ошибка опять появляется. Для того, чтобы этого избежать, я ввел проверку на наличие пробелов в пути. Финальный вариант процедуры такой:
procedure FrMain_Button2_OnClick (Sender: string; var Cancel: boolean);
var
prog,file,path:string;
begin
path:= ExtractFilePath(Application.ExeName); //получаем путь к папке
prog:=path+'SoloPad.exe'; //получаем путь к программе, которая находится в папке с исполняемым файлом.
If Pos(' ', path) Then //проверяем наличие пробелов в пути
file:= '"'+path+'ReadMe.rtf"' // если есть, то заключаем в кавычки
else
file:= path+'ReadMe.rtf'; // если нет, то ничего не делаем.
OpenFile(file,prog);
end;