Открыть папку в отдельном окне

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Открыть папку в отдельном окне

Сообщение Troublemaker » 24.10.2008 19:33:59

Возникла подзадача: надо из программы открыть отдельное окно текущего файлового менеджера. Из командной строки это решается просто:

explorer <dirname>

nautilus <dirname>

и т.п.

А есть ли какой-то универсальный способ, что-нибудь вроде ShellCommand.ShowDir(<dirname>) ?

Смысл задачи: дать возможность пользователю выполнить какие-то (любые) действия над файлами средствами операционной среды.
Аватара пользователя
Troublemaker
постоялец
 
Сообщения: 292
Зарегистрирован: 16.04.2008 13:00:44
Откуда: Биробиджан, Дальний Восток

Re: Открыть папку в отдельном окне

Сообщение Odyssey » 24.10.2008 21:48:07

Troublemaker писал(а):А есть ли какой-то универсальный способ, что-нибудь вроде ShellCommand.ShowDir(<dirname>) ?

Скорее нет чем да, слишком уж много файловых менеджеров. Хотя можно самостоятельно написать определение ФМ и запуск его с параметрами. Например, в fpGUI для похожей задачи (открытие ссылки в браузере по умолчанию) используется следующий код:
Код: Выделить всё
// под Windows
procedure fpgOpenURL(const aURL: TfpgString);
begin
  try
    ShellExecute(0, 'open', PChar(aURL), nil, nil, 0) ;
  except
    // do nothing
  end;
end;

// под Linux
procedure fpgOpenURL(const aURL: TfpgString);
var
  Helper: string;
begin
  Helper := '';
  if fpsystem('which xdg-open') = 0 then
    Helper := 'xdg-open'
  else if FileExists('/etc/alternatives/x-www-browser') then
    Helper := '/etc/alternatives/x-www-browser'
  else if fpsystem('which firefox') = 0 then
    Helper := 'firefox'
  else if fpsystem('which konqueror') = 0 then
    Helper := 'konqueror'
  else if fpsystem('which opera') = 0 then
    Helper := 'opera'
  else if fpsystem('which mozilla') = 0 then
     Helper := 'mozilla';

  if Helper <> '' then
    fpSystem(Helper + ' ' + aURL + '&');
end;
Odyssey
энтузиаст
 
Сообщения: 580
Зарегистрирован: 29.11.2007 17:32:24

Re: Открыть папку в отдельном окне

Сообщение Troublemaker » 25.10.2008 04:41:45

Odyssey писал(а):Скорее нет чем да,

Просто любопытно, а как это реализовано в мозиллах, когда из списка закачек можно открыть либо "адрес файла" (seamonkey) либо "папку, содержащую файл" (firefox)?
Аватара пользователя
Troublemaker
постоялец
 
Сообщения: 292
Зарегистрирован: 16.04.2008 13:00:44
Откуда: Биробиджан, Дальний Восток

Re: Открыть папку в отдельном окне

Сообщение Attid » 25.10.2008 11:31:58

Troublemaker писал(а):Просто любопытно, а как это реализовано в мозиллах, когда из списка закачек можно открыть либо "адрес файла" (seamonkey) либо "папку, содержащую файл" (firefox)?

они опенсурс можешь глянуть =)
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 65

Рейтинг@Mail.ru