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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.02.2014, 18:00   #11
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Откуда я знаю чем и как вы открываете. Полный путь к файлу получили в DirName вот и используйте его как параметр в методе или функции открытия файла. В OnCreate формы. Или OnShow. Или по кнопке, вам решать
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 03.02.2014, 18:01   #12
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Цитата:
Сообщение от Argontarg Посмотреть сообщение
Хм,
GetDir(0, DirName);
DirName:=DirName+'\тут путь Презентация.ppt';
ShowMessage(DirName);
if DirName(Здесь ошибку даёт, какую функцию надо вписать?) then
ShellExecute(Hinstance, 'open', PChar(DirName) , nil, nil, SW_SHOWMAXIMIZED);
Только ошибку даёт.
Ничего удивительного. В условном операторе можно использовать либо переменные типа boolean либо функции или выражения, которые возвращают этот тип. Переменная DirName имеет тип string. Именно в ней находится путь к папке.
Кроме того, Вы не правильно передаёте дескриптор (THandle) в ShellExecute. Подробнее можно прочитать здесь: Запуск приложений из Delphi.
Исправленный вариант:
Код:
GetDir(0, DirName);
DirName:=DirName+'\Презентация.ppt';
ShellExecute(Self.Handle, 'open', PChar(DirName) , nil, nil, SW_SHOWMAXIMIZED);

Последний раз редактировалось Streletz; 03.02.2014 в 18:54.
Streletz вне форума Ответить с цитированием
Старый 03.02.2014, 18:48   #13
Argontarg
Пользователь
 
Регистрация: 21.01.2014
Сообщений: 40
По умолчанию

Цитата:
Сообщение от Streletz Посмотреть сообщение
Ничего удивительного. В условном операторе можно использовать либо переменные типа boolean либо функции или выражения, которые возвращают этот тип. Переменная DirName имеет тип string. Именно в ней находится путь к папке.
Кроме того, Вы не правильно передаёте дескриптор (THandle) в ShellExecute. Подробнее можно прочитать здесь: Запуск приложений из Delphi.
Исправленный вариант:
Код:
GetDir(0, DirName);
DirName:=DirName+'\Презентация.ppt';
ShellExecute(Self.Handle, 'open', PChar(DirName) , nil, nil, W_SHOWMAXIMIZED);
Перед: ShellExecute(Self.Handle, 'open', PChar(DirName) , nil, nil, W_SHOWMAXIMIZED); выдаёт ошибку, хм странно.
Argontarg вне форума Ответить с цитированием
Старый 03.02.2014, 18:51   #14
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

Код:
GetDir(0, DirName);
ShellExecute(Self.Handle, 'open', PChar(DirName+'\Презентация.ppt') , nil, nil, W_SHOWMAXIMIZED);
а что ExtractFilePath(ParamStr(0)) запретили использовать?
ZuBy вне форума Ответить с цитированием
Старый 03.02.2014, 19:00   #15
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Цитата:
Сообщение от Argontarg Посмотреть сообщение
Перед: ShellExecute(Self.Handle, 'open', PChar(DirName) , nil, nil, W_SHOWMAXIMIZED); выдаёт ошибку, хм странно.
Что, за ошибка? Если компилятор ругается на W_SHOWMAXIMIZED, исправьте на SW_SHOWMAXIMIZED. Простите, после практически 2х суток непрерывной работы, начинаю тормозить.
Вот этот вариант, только что сам проверил, на 100% рабочий.
Код:
GetDir(0, DirName);
DirName:=DirName+'\Презентация.ppt';
ShellExecute(Self.Handle, 'open', PChar(DirName) , nil, nil, SW_SHOWMAXIMIZED);
Простите, я не хочу Вас обидеть, но ИМХО Вам определённо не достаёт внимательности. У Вас прямо перед глазами была столь очевидная ошибка, а Вы её не заметили. Впредь, пожалуйста, будьте внимательнее.
Если проблема в другом, ошибку в студию.

Последний раз редактировалось Streletz; 03.02.2014 в 19:11.
Streletz вне форума Ответить с цитированием
Старый 03.02.2014, 20:53   #16
Argontarg
Пользователь
 
Регистрация: 21.01.2014
Сообщений: 40
По умолчанию

Цитата:
Сообщение от Streletz Посмотреть сообщение
Что, за ошибка? Если компилятор ругается на W_SHOWMAXIMIZED, исправьте на SW_SHOWMAXIMIZED. Простите, после практически 2х суток непрерывной работы, начинаю тормозить.
Вот этот вариант, только что сам проверил, на 100% рабочий.
Код:
GetDir(0, DirName);
DirName:=DirName+'\Презентация.ppt';
ShellExecute(Self.Handle, 'open', PChar(DirName) , nil, nil, SW_SHOWMAXIMIZED);
Простите, я не хочу Вас обидеть, но ИМХО Вам определённо не достаёт внимательности. У Вас прямо перед глазами была столь очевидная ошибка, а Вы её не заметили. Впредь, пожалуйста, будьте внимательнее.
Если проблема в другом, ошибку в студию.
Всё спасибо работает!!!!!!!! Огромное спасибо!

Последний раз редактировалось Argontarg; 03.02.2014 в 21:20.
Argontarg вне форума Ответить с цитированием
Старый 04.02.2014, 10:07   #17
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
Радость

Пожалуйста!!!
Streletz вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как сделать чтобы chm файл открывался на форме kate158 Общие вопросы Delphi 1 02.04.2012 15:12
Как сделать так, чтобы вордовский документ НЕ открывался? Mar25ag33ova Microsoft Office Word 2 02.03.2012 20:25
как сделать, чтобы если открываешь один файл, то автоматически открывался другой? Artem_85 Microsoft Office Excel 10 22.02.2012 14:02
Нужно чтобы Form2 открывался по середине Form1 diznt Помощь студентам 1 31.08.2008 03:37
Как сделать чтобы xml файл открывался в Delphi KlErik Общие вопросы Delphi 2 24.05.2007 11:02