Запуск файла из dbgrid delphi

289
28 октября 2017, 15:23

Есть связка БД mysql + dbgrid, dbgrid отображает данные (имя, размер, путь и т.д.) Есть 2 моих редактора (я учусь), через которые нужно открыть jpg или txt, а все остальное это уже диалоговое окно открыть "с помощью". Никак не получается реализовать, редакторы jpg, txt открываются сами, но не открывает сами файлы через эти редакторы, отдельно запускаю диалоговое окно открыть "с помощью", говорит что не удается найти...в 1й раз в жизни пишу вопрос на форуме...(вообще), не судите строго. Вот 2 куска кода, что наскреб:

procedure TForm1.DBGrid1CellClick(Column: TColumn);
var[![введите сюда описание изображения][1]][1]
  MyFile: String;
begin
  MyFile := DBGrid1.DataSource.DataSet.FieldByName('filename').AsString;
  ShellExecute(Application.Handle, nil, PChar('PhotoEitor.exe'),
  pchar(MyFile), nil, SW_RESTORE);
  //ИЛИ
  ShellExecute(Application.Handle, nil, PChar('rundll32.exe'),
  PChar('shell32.dll,OpenAs_RunDLL ' + MyFile), nil, SW_SHOWNORMAL);
end;
Answer 1

В этом вызове MyFile должен включать полный путь к файлу, который Вы хотите открыть для редактирования, а не только имя файла:

var
  filePath, fileName, fullName: String;
begin
  filePath := DBGrid1.DataSource.DataSet.FieldByName('filepath').AsString;
  fileName := DBGrid1.DataSource.DataSet.FieldByName('filename').AsString;
  fullName := IncludeTrailingPathDelimiter(filePath) + fileName;
  ShellExecute(Application.Handle, nil, PChar('PhotoEditor.exe'),
    PChar(fullName), nil, SW_RESTORE);
READ ALSO
Проблема с jre, не может запустить Test connection

Проблема с jre, не может запустить Test connection

Пытаюсь протестить связь с бд и выпадает такая ошибка

228
Как быстро освоить Spring MVC? [требует правки]

Как быстро освоить Spring MVC? [требует правки]

Есть необходимость сделать Web-приложениеЗавершить его надо к апрелю

319
Анимация CollapsingToolbarLayout

Анимация CollapsingToolbarLayout

Мне нужно сделать свой бар, фоном которого будет проскроливающаяся картинка, как на прикрепленных скринахЗнаю как сделать такое активити,...

324