Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 26.04.2012, 09:14   #1
qwerty55
Пользователь
 
Регистрация: 22.02.2010
Сообщений: 60
По умолчанию Вопрос по OpenDialog

Имеется кнопка на форме, при нажатии на нее открывается OpenDialog. Как с помощью OpenDialog'a выбрать и запустить просто на выполнение другую программу (*.exe)?
qwerty55 вне форума
Старый 26.04.2012, 09:35   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
if OpenDialog1.Execute then ShellExecute(0,nil,PChar(OpenDialog1.Execute),nil,PChar(ExtractFilePath(OpenDialog1.Execute)),SW_SHOWNORMAL);
PS: uses ShellAPI.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума
Старый 26.04.2012, 09:46   #3
qwerty55
Пользователь
 
Регистрация: 22.02.2010
Сообщений: 60
По умолчанию

Код:
if OpenDialog1.Execute then ShellExecute(0,nil,PChar(OpenDialog1.Execute),nil,PChar(ExtractFilePath(OpenDialog1.FileName)),SW_SHOWNORMAL);
может так?
хотя по-любом не работает, открывается OpenDialog, выбираю файл, нажимаю открыть и тишина, никаких действий не проиходит..
qwerty55 вне форума
Старый 26.04.2012, 09:49   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,528
По умолчанию

а немного подумать, полистать справку, почитать Google
Opendialog.FileName
кстати Пепел Феникса в своем примере частично ответил на ваши другие вопросы.
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 26.04.2012 в 10:14.
evg_m вне форума
Старый 26.04.2012, 09:59   #5
qwerty55
Пользователь
 
Регистрация: 22.02.2010
Сообщений: 60
По умолчанию

у меня почему-то отказывается работать запуск через ShellExecute, я уже пробовал писать чтобы открывалась просто папка и выделялся в ней нужный файл. Папка открывается и файл выделяется, но там нужно прописывать полный путь
Код:
ShellExecute(Handle, nil, 'explorer /select' + 'C:\Documents and Settings\Пользователь\Рабочий стол\Тестирование\Литература\Dannie\Tests\' + 'Gogol.exe',
 nil, nil, SW_SHOWNORMAL);
но если папку с проектом переместить допустим на диск D, то путь то полный измениться... Как установить не полный путь?
qwerty55 вне форума
Старый 26.04.2012, 10:06   #6
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,528
По умолчанию

пробел естественный разделитель параметров.
если в параметре ( а путь к файлу это параметр запуска explorer) используются пробелы (document and setting) то такой параметр необходимо заключать в кавычки.

Цитата:
Как установить не полный путь?
читайте справку к shellExecute. зачем ему нужно так много параметров.
"полный путь" = "рабочая directory" + "остаток пути"
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 26.04.2012 в 10:12.
evg_m вне форума
Старый 26.04.2012, 10:10   #7
qwerty55
Пользователь
 
Регистрация: 22.02.2010
Сообщений: 60
По умолчанию

Т.е. так?
" 'explorer/select' + 'C:\...\...\...\...\...\...\...\' + 'Gogol.exe' "
qwerty55 вне форума
Старый 26.04.2012, 10:16   #8
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,528
По умолчанию

нет
explorer \select "c:\doc and set\test1"
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума
Старый 26.04.2012, 10:20   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

qwerty55,
ХВАТИТ КРОССПОСТИНГОМ ЗАНИМАТЬ!

ваши открытые темы на форуме:
Ошибка запуска exe-файла

Ошибка запуска exe-файла


и во всех этих темах Вам уже объяснили, где Вы косячите и как это исправить!

ТЕМА ЗАКРЫТА
Serge_Bliznykov вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по OpenDialog swoy45 Помощь студентам 5 01.02.2012 13:15
OpenDialog CodeNOT C++ Builder 4 21.05.2011 10:35
БД и OpenDialog alexeybest БД в Delphi 3 17.02.2010 09:34
OpenDialog Cabyrc БД в Delphi 4 05.04.2009 11:56
OpenDialog.Options:=OpenDialog.Options+[ofAllowMultiSelect]; necky Компоненты Delphi 2 11.08.2007 12:53