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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.10.2008, 07:55   #1
Copperfild
 
Регистрация: 01.10.2008
Сообщений: 4
Вопрос Запустить внешнее приложение

В общем я даже не прогер, а любитель-самоучка. Иногда пишу отсебятину длясебятину - утилитки там всякие и пр., поэтому тупой как пень.

В общем мне надо чтобы при нажатии на батон открывался MS Excel с указанным файлом (пусть, к примеру его имя и путь будет в переменной tablename:string, если надо, то сам путь к экселю пусть будет в переменной excelpath:string).

Желательно попроще
Все хелпы обрыл не могу найти...

Заранее спасибо.
Copperfild вне форума Ответить с цитированием
Старый 01.10.2008, 08:22   #2
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,501
По умолчанию

Вот тебе похожая тема, решение твоего вопроса на 2-й странице.

http://programmersforum.ru/showthread.php?t=7149
Alar вне форума Ответить с цитированием
Старый 01.10.2008, 08:27   #3
DeDoK
Форумчанин
 
Аватар для DeDoK
 
Регистрация: 05.11.2007
Сообщений: 392
Смех Ответ

все канешно не так просто как кажецца=)
сначала подключаем модуль ComObj в секцию uses, обьявляем глобальную переменную типа variant
app : variant;
а потом пишем
Код:
procedure TForm1.Button1Click(Sender:TObject);
var
IsActive:boolean; // это наш Ексель
begin
if not(IsActive) then
begin
try
app:=CreateOleObject('Excel.Application');
except
ShowMessage('Не открылся');
exit;
end;
end;
App.Workbooks.Add(); 
App.Visible:=true; // вставляем свой текст
App.ActiveWorkBook.WorkSheets[1].Cells[2,2].VAlue:='Понедельник';
App.ActiveWorkBook.WorkSheets[1].Cells[2,3].VAlue:='Вторник';
App.ActiveWorkBook.WorkSheets[1].Cells[2,4].VAlue:='Среда';
App.Range['B2','F2'].Columns.ColumnWidth:=18;
App.Range['B2','F2'].Font.Bold:=true;
end;
procedure TForm1.FormClose(Sender:TObject; var Action:TCloseAction);
begin
APP.ActiveWorkBook.Close(false);
App.Quit;
end;
Вот собственно и фсе=)
DeDoK вне форума Ответить с цитированием
Старый 01.10.2008, 08:31   #4
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,501
По умолчанию

DeDoK, в вашем случае все слишком служно, это же тема в стиле "ShellExecute поищи в поиске не забудь добавить модуль ShellApi"

А вы предлагаете весь ексель затащить в Delphi, я конечно только за. спасибо, но добавте Button2, чтобы все творчество сохранить.
Alar вне форума Ответить с цитированием
Старый 01.10.2008, 09:38   #5
Copperfild
 
Регистрация: 01.10.2008
Сообщений: 4
По умолчанию

Цитата:
Сообщение от DeDoK Посмотреть сообщение
все канешно не так просто как кажецца=)
Говорит Invalid Variant Operation на строке App.Workbooks.Add();
Copperfild вне форума Ответить с цитированием
Старый 01.10.2008, 09:58   #6
Copperfild
 
Регистрация: 01.10.2008
Сообщений: 4
По умолчанию

Попробовал вот так

ShellExecute(Handle, nil, 'excel.exe', 'Z:\Test Folder\Price Comp\test.xls', nil, SW_SHOW);

Запускается эксель, но потом эксель пишет одно за другим:
Не найден файл Z:\Test
Не найден файл Folder\Price
Не найден файл Comp\test.xls

То есть он типа считает что это неколько файлов... Как решить проблему с пробелами?

Последний раз редактировалось Copperfild; 01.10.2008 в 10:08.
Copperfild вне форума Ответить с цитированием
Старый 01.10.2008, 10:22   #7
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Код:
ShellExecute(Handle, nil, 'excel.exe', '"Z:\Test Folder\Price Comp\test.xls"', nil, SW_SHOW);
Sibedir вне форума Ответить с цитированием
Старый 01.10.2008, 12:13   #8
Copperfild
 
Регистрация: 01.10.2008
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Sibedir Посмотреть сообщение
Код:
ShellExecute(Handle, nil, 'excel.exe', '"Z:\Test Folder\Price Comp\test.xls"', nil, SW_SHOW);
Спасибо огромное всем, кто помог!
Copperfild вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Независимое внешнее тестирование выпускников Украины Viteef Свободное общение 15 02.06.2008 14:25
как запустить приложение из к примеру текст файла!!! Volkogriz Общие вопросы Delphi 12 12.10.2007 12:27
Запустить opera s-force Работа с сетью в Delphi 7 27.08.2007 12:37
Как запустить приложение, дождаться его исполнения и только потом выполнять код? il76 Win Api 6 19.07.2007 14:00
Организовать на экране внешнее меню Klyan Паскаль, Turbo Pascal, PascalABC.NET 10 03.01.2007 18:37