![]() |
|
| Правила Форума редакция от 22.06.2020 |
|
|||||||
|
|
Окажите посильную поддержку, мы очень надеемся на вас. Реквизиты для переводов ниже. |
|
![]() |
|
|
Опции темы | Опции просмотра |
Language
|
|
|
#1
|
|
1. Делаю для себя (для более удобной работы)
Есть программа в ней хочу сделать панель для запуска приложений реализую метод через ShellExecute (прописываю либо прямой путь к файлу либо стандартный путь к ярлыку в меню пуск) путь к ярлыку ShellExecute(0, nil, 'C:\Documents and Settings\All Users\Главное меню\Программы\CorelDRAW Graphics Suite 12\CorelDRAW 12', nil, nil, SW_SHOWNORMAL); прямой путь ShellExecute(0, nil, 'C:\Program Files\The Bat!\thebat.exe', nil, nil, SW_SHOWNORMAL); 2. Задача. Шаг 1й Создать файл настроек (например ini) где будет 2 раздела пример [Command] (тут е нас будут содержаться строка к исполняемому файлу) [Image] (а тут у нас будет путь к определенной bmpшке для программы) соответтсвенно нумаряция строк будет учитываться относительно заголоква. Шаг 2й Программно добавляем новый ярлык на панель быстрого доступа. Шаг 3й Программа сама определяет кол-во строк в файле насроек (10 например) и создает именно такое же кол-во кнопок для запуска необходимых преложений. (DelphiWorld непредлагать узать читал без толку). Шаг 4й. на.р.на это все надо сам непойму тык как софт ставлю всегда в определенную папку, думаю просто захотелось гемороя. Недопетриваю: Как сказать программе что при прочтении кол-ва строк в файле создать именно такое же кол-во кнопок. (вообще реально ли, но думаю что да просто недопонимаю) Добавлено через 8 минут Ах да чуть незабыл почему захотелось гемороя: Просто иногда попадаються разные версии програмного обеспечения и соответственно непрокатит не один из методов. простой пример для запуска Adobe Reader 6.0 необходима прямая строка C:\Program Files\Adobe\Acrobat 6.0 CE\Reader, а для 7.0 C:\Program Files\Adobe\Acrobat 7.0 CE\Reader. т.е. Пути к испольняемому файлу несоответствуют, а раздувать код программы прописывая несколько путей я думаю смысла неимеет. Хотя исследования подтвердили что при описании нескольких путей к одному програмному продукту, запускаеться та версия которая была найдена. Но лишний код, лишнее время на обработку (Хотя какое лишнее время на Pentiumax D и их последующих собратьях). Последний раз редактировалось Skazi; 21.06.2007 в 11:21.. Причина: Добавлено сообщение |
|
|
|
|
| Реклама: | Магазин бытовой техники: электрическая плита gorenje gecs6c70xc - переходи на сайт ТАЙМТВ! | проект барнхаус 60 | штамп вырубной ювелирный | стоимость круиза на теплоходе казань ульяновск | Мебельный магазин: туристический стол складной - Переходи на сайт! |
|
|
#2
|
|
Новичок
Пол:
Регистрация: 25.06.2007
Сообщений: 14
Репутация: 14
|
Для чтения ini файлов есть класс TIniFile, создаешь объект и читаешь из настроечного файла по разделам заданные пути с помощью метода
function ReadString(const Section, Ident, Default: String): String; override; А для динамического создания кнопок достаточно написать в цикле var b:tbutton; begin b:=tbutton.create(self); b.parent:=self; // имееться ввиду текущая форма b.top:=100; // что хочешь b.left:=100; // что хочешь b.visible:=true; b.hint:= //можно присвоить путь к программе и при нажатии запускать ее b.onclick:=Button1Click; // обработчик нажатия end; |
|
|
|
| Сказали спасибо: |
|
|
#3
|
|
А ещё лучше не кнопки создавать, а список в TListBox выводить. А запуск на DblClick по элементу списка.
|
|
|
|
|
|
|
#4
|
|
Неактивный пользователь
Пол:
Регистрация: 20.05.2007
Сообщений: 1
Репутация: 0
|
Легче,
ни издома можно выйдти черпез окнго, проползти прод столом ивыдти в дверь... |
|
|
|
|
|
#5
|
|
Неактивный пользователь
Регистрация: 11.07.2007
Сообщений: 3
Репутация: 0
|
ShellExecute (0, 'open', 'C:\1.exe', nil, nil, SW_SHOW)
|
|
|
|
|
|
#6
|
||||||||||||||||||||||||||||||||||||||||||||||
|
Неактивный пользователь
Пол:
Регистрация: 18.05.2006
Сообщений: 44
Репутация: 43
|
Почему не сделать проверку при прочтении настроек из ini? =true -> создаешь кнопку =false -> пропускаешь.
Или так: Uses ShellAPI; ShellExecute(Handle, Nil, 'C:\1.exe', Nil, Nil, SW_SHOW); Последний раз редактировалось MonsieuR; 11.07.2007 в 17:29.. |
||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
#7
|
|
Новичок
Пол:
Регистрация: 29.05.2007
Сообщений: 10
Репутация: 5
|
Попробуй найти компонент, запускающий любые файлы. Помоему в пакете Raise есть.
|
|
|
|
|
|
#8
|
|
formeram, а полное название компонента именно такое чет в топе с компонентима поиском ненаходит.
|
|
|
|
|
|
|
#9
|
|||||||||||||||||||||||
|
Неактивный пользователь
Регистрация: 12.07.2007
Сообщений: 1
Репутация: 0
|
У TINIFile есть отличный метод: ReadSection(const Section: string; Strings: TStrings); var Items: TStringList; INI: TINIFile; ...... INI := TINIFile.Create('settings.ini'); Items := TStringList.Create; INI.ReadSection('Command', Items); ...... Получаешь в списке Items имена всех ключей секции Command Соответственно, их количество - Items.Count Ну а дальше цикл до Count-1 и создаешь свои кнопки, читая значения ключей через INI.ReadString('Command', Items[I], '') |
|||||||||||||||||||||||
|
|
|
![]() |
Похожие темы
|
||||
| Тема | Автор | Раздел | Ответов | Последнее сообщение |
| Запуск приложения от лица администратора... и еще одна проблемка... | mope | Microsoft Windows | 17 | 27.10.2010 06:59 |
| Запуск программ | Gramazeka | Архив | 3 | 26.12.2009 12:55 |
| Запуск полноэкранного приложения в окне | AldeX | Microsoft Windows | 9 | 21.08.2007 18:19 |
| запуск программ с задержкой | kianovskiy | Microsoft Windows | 4 | 11.02.2007 17:29 |
|
|