|
Вопрос # 1 000/ вопрос открыт / |
|
Приветствую, уважаемые эксперты! Скажите, как можно реализовать некоторое подобие рабочего стола, то есть расположить иконку на форме, при щелчке на которую (иконку) будет открываться соответствующий файл?
 |
Вопрос задал: alone (статус: Посетитель)
Вопрос отправлен: 24 октября 2007, 16:02
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: Вадим К
Здравствуйте, Гадлевский Олег Вячеславович!
Делаем так.
На форму кладём ListView
выставляем свойство
IconOptions.Arrangement = iaLeft
тепер иконки будут выстраиваться как положенно на рабочем столе, тоесть сверху вниз
ставимь на форму ImageList, куда грузим нужные иконки. у него выставляем свойства Width и Height равными 32. или такими, какими нужны иконки. связываем с ListView через свойство LargeImage.
Добаляем в листвью иконки, приминив редактор, который можно вызвать, кликнув правой кнопкой мыши по ListView (Items Editor)
можно выставить цвет ListView, что бы было реалистичней.
выставить свойсво HotTrack = true можно симитировать режим "в один клик". тоесть, наводишь мышку на элемент, а он выделяется. HotTrackStyle позволит более точно сделать подобие.
также неплохо выставить MultiSelect
Теперь сделаем запуск по двойному клику. для этого нужно создать обработчик события OnDblClick
там напишем такое
if ListView1.ItemIndex = -1 then
exit;
ShowMessage(ListView1.Items[ListView1.ItemIndex].Caption);
Теперь при двойному клику будет появлятся сообщение с именем элемента. Индекс его тоже известен.
А вот что на самом деле должно отображаться - это решать вам.
Теперь о том, как "запустить" файл. для этого добавим в список Uses юнит ShellApi и будем использовать такой код
ShellExecute (Form1.Handle, nil, PAnsiChar(filename), nil, nil, SW_RESTORE);
в качестве filename может быть как имя выполнимого файла так и например вордовский документ.
а вот такой строкой можно запустить броузер
ShellExecute (Form1.Handle, nil, 'iexplore', 'http://expert.delphi.int.ru', nil, SW_RESTORE);
Остался последний вопрос. "а как связать иконку и путь к файлу (действие)? ведь неудобно по имени делать выбор".
Тут советую прочитать мою статью о виртуальном ListView
Как прицепить всплывающее меню предлагаю подумать самостоятельно.
 |
Ответ отправил: Вадим К (статус: Академик)
Время отправки: 24 октября 2007, 16:46
Оценка за ответ: 5
Комментарий к оценке: Спасибо большое!
|
Мини-форум вопроса
Мини-форум пуст.
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|