Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > кнопку связать с другим приложением


Автор: Elv 26.6.2005, 13:06
Помогите пожалуйста: как можно поместить на форму кнопку и связать эту кнопку с другим приложением. Например, нажать на кнопку и загружался бы MS Word, или калькулятор, или презентация PowerPoint'а?

Автор: SPrograMMer 26.6.2005, 13:13
ShellExecute(.....)
Добавлено @ 13:13
а лучше CreateProcess(...)

Автор: mvdr 26.6.2005, 13:22
uses ShellAPI;
…
Код

var 
  h: hwnd; 
begin 
  if ShellExecute(h, 'open', 'путь до ворда', nil, nil, SW_SHOW) < 32 then 
    begin 
      ShowMessage('Немогу выполнить ShellExecute !') 
    end; 
end; 


а-а, забыл сказать - это все в Onclick надо

Автор: Yanis 26.6.2005, 14:00
Для запуска Word'а можно просто написать:
Код

ShellExecute(h, 'open', 'winword', nil, nil, SW_SHOW)

Автор: Гость_Elvis 26.6.2005, 14:23
Таким путем Ворд открывается, папки тоже, а во чтобы созданный документ .
У меня имеется файл презентации (PowerPoint) созданный мною. Хотелось бы загружать этот файл из программы написанную на Delphi.
После компиляции при каждом нажатии на кнопочку выходит сообщение "Не могу вполнить ShellExecute".

А почему не может? В каких случаях не выполняется ShellExecute?

Автор: mvdr 26.6.2005, 14:33
Цитата
"Не могу вполнить ShellExecute".
а ты вот это прописал: uses ShellAPI?

Цитата
Хотелось бы загружать этот файл из программы написанную на Delphi.
в чем проблема:
Код

ShellExecute(h, 'open', PChar('C:\MyDir\MyFile.doc'), nil, nil, SW_SHOW);

Автор: Guest 26.6.2005, 15:43
Femida, все получается я просто расширение файла неправильнои написал smile

Автор: mvdr 26.6.2005, 15:50
Elv, вот и хорошо.

Автор: lotax 27.6.2005, 09:52
Код

procedure TForm1.Button1Click(Sender: TObject);
begin
WinExec('calc.exe',SW_Normal);
end;


соответственно можно указать и путь к файлу

Автор: Yanis 27.6.2005, 17:22
To lotax
Ответ уже давно дан. К тому же зачем использовать устаревшую функцию!!??

Автор: Гость_Elvis 27.6.2005, 18:49
lotax, все работает. Мне как раз калькулятор нужен был.
Только, можно сделать так, чтобы, допустим, результат решения на калькуляторе (нажатием на какую-нибудь кнопочку, на самом калькуляторе или в разрабатываемой программе) автоматически отображался в какой-нибудь ячейки таблицы DBGrid. Такое возможно?

Мне подсказывали использовать библиотеку (RixLib или RixCal, по-моему так), но работать с библиотеками я пока не умею. По-другому никак нельзя? Или можно?

Автор: Poseidon 28.6.2005, 18:21
Цитата
Мне подсказывали использовать библиотеку (RixLib или RixCal, по-моему так), но работать с библиотеками я пока не умею. По-другому никак нельзя? Или можно?
Используя кампонент TRxCalculator из библиотеки RxLib добится того, что тебе нужно очень просто. Если не умеешь устанавливать библиотеки, то вот, почитай http://forum.vingrad.ru/index.php?showtopic=56814 Сылка на RxLib есть в FAQ в разделе "Патчи и исправления библиотек"

Автор: Alex 28.6.2005, 18:43
Модератор: Пожалуйста, один топик - один вопрос. Тема закрыта.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)