Давайте добавим к нашему файловому менеджеру возможность путешествия по папкам и запуска файлов. Для этого нужно создать обработчик события ondblclick для компонента Listview и написать в нем содержимое листинга:
В этом коде в самом начале осуществляется проверка произведенного выбора (по какому объекту был произведен щелчок мышью). Если это папка, то надо перейти в нее, а если файл, то надо его запустить. Для этого проверяется пятый дополнительный параметр выделенного элемента:
ListViewl.Selected.Subltems[5]='dir'
Когда мы добавляли элементы и дополнительные параметры в Listview, то в качестве пятого для папок указывали значение 'dir', а для файлов — 'file'. Теперь надо только проверить этот параметр.
Если выделенная строка— это папка, то мы изменяем текст текущей папки в Editl.Text и перечитываем ее с помощью вызова AddFile, указав новое значение папки.
Если выделенная строка— это файл, то его надо запустить. Это можно сделать С ПОМОЩЬЮ вызова функции ShellExecute. У функции следующие параметры:
- программа, отвечающая за запуск приложения. Здесь можно указать значение nil, НО МЫ укажем главное ОКНО программы (Application.MainForm.Handle);
- строка, указывающая на операцию, которую надо выполнить. Укажем nil для запуска файла;
- строка, содержащая полный путь к файлу;
- строка параметров, передаваемых программе в командной строке;
- папка по умолчанию;
- команда показа. Здесь мы укажем sw_show для нормального отображения окна. Можно указать и другие параметры (все команды вы найдете в файле помощи), но чаще всего используются sw_show (нормальный режим), sw_showmaximized (показать максимизировано) или sw_showminimized (показать в свернутом состоянии).