У меня два вопроса.
1. Нужно программно определить полный путь по заданному имени файла. В Windows имеется функция FindExecutable().
Есть ли подобная функция для Linux?
2. В TreeView выведено содержимое каталога. Необходимо по двойному щелчку по имени исполняемого файла запустить его. Как это сделать в Linux?
В Windows я сделал, вот код (привожу только оператор uses, поскольку это важно и саму процедуру обработки события OnDblClick:
- Код: Выделить всё
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
ComCtrls, StdCtrls, ExtCtrls, LCLType,
{$IFDEF UNIX}
unix;
{$ELSE}
ShellApi, Windows;
{$ENDIF}
....................................................
....................................................
procedure TForm1.ListView1DblClick(Sender: TObject);
var
s: string;
progr: pchar;
name_progr: array[0..255] of char;
begin
if ListView1.Selected <> nil then
begin
s:= ListView1.Selected.Caption;
s:= UTF8ToSys(s);
progr:= pchar(s);
FindExecutable(progr, nil, name_progr);
{$IFDEF UNIX}
shell(progr); // это не проходит
{$ELSE}
ShellApi.ShellExecute(Handle, nil, name_progr, nil, nil, 1);
{$ENDIF}
end;
end;