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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.01.2009, 12:00   #1
Наталья111
Пользователь
 
Регистрация: 22.12.2008
Сообщений: 59
Восклицание Справка

У меня на главной форме меню есть пункт "Справка". При нажатии на него необходимо вывести справку скомпилированную для делфи hlp. Как открыть ее через пункт меню "Справка"? Надо веть прописывать код?
вот написала.
он мне выводит ошибку: undeclared identifier: 'ShellExecute'. (неописанный индетификатор.)
Где его надо описать и как? просто к ShellExecute присвоить тип. Или что?
ShellExecute - это же процедура (функция)?

procedure TForm1.N2Click(Sender: TObject);
begin
ShellExecute(0, NIL, 'C:\Documents and Settings\Admin\Рабочий стол\Программирование\Копия Лабораторная работа №4\sqrt_lab4.chm', NIL, NIL, SW_RESTORE));
end;


Последний раз редактировалось Наталья111; 07.01.2009 в 12:53.
Наталья111 вне форума Ответить с цитированием
Старый 07.01.2009, 12:59   #2
KORN
Банхаммер
Участник клуба
 
Аватар для KORN
 
Регистрация: 17.02.2007
Сообщений: 1,754
По умолчанию

уже лучше, поздравляю... сама пытаешься разобраться...
добавь в Uses ShellApi;

procedure TForm1.N2Click(Sender: TObject);
begin
ShellExecute(0, 'Open', Pchar(extractfilepath(application.e xename)+'sqrt_lab4.chm'), NIL, NIL, SW_SHOWNORMAL));
end;

Pchar(extractfilepath(application.e xename)+'sqrt_lab4.chm') это путь относитеьлно твоей папки с программой и следи за типами данных
Перед тем как спросить ищи на форуме и в GOOGLE

Последний раз редактировалось KORN; 07.01.2009 в 13:02.
KORN вне форума Ответить с цитированием
Старый 07.01.2009, 13:37   #3
Наталья111
Пользователь
 
Регистрация: 22.12.2008
Сообщений: 59
По умолчанию

Спасибо KORN
я тут вот прописала путь:
ShellExecute(0, 'Open', Pchar(extractfilepath('C:\Documents and Settings\Admin\Рабочий стол\Программирование\Копия Лабораторная работа №4)'+'sqrt_lab4.chm')), NIL, NIL, SW_SHOWNORMAL);

наверно не правильно потому что он открывает папку Копия Лабораторная работа №4, а не файл sqrt_lab4.chm'.
не подскажешь где ошибка?
Наталья111 вне форума Ответить с цитированием
Старый 07.01.2009, 13:45   #4
KORN
Банхаммер
Участник клуба
 
Аватар для KORN
 
Регистрация: 17.02.2007
Сообщений: 1,754
По умолчанию

вот смотри application.exename это путь к нашей программе а функция extractfilepath возвращает нам только папку т.е. если у нас программа лежит c:\1\project.exe то она нам вернет c:\1\ тебе нет смысл писать
C:\Documents and Settings\Admin\Рабочий стол\Программирование\Копия Лабораторная работа №4 т.к. extractfilepath(application.exename ) вернет ее за тебя
Перед тем как спросить ищи на форуме и в GOOGLE
KORN вне форума Ответить с цитированием
Старый 07.01.2009, 13:48   #5
s.Creator
Форумчанин
 
Регистрация: 28.09.2008
Сообщений: 344
По умолчанию

Код:
'...Программирование\Копия Лабораторная работа №4\)'+'sqrt_lab4.chm'
Забыла "\"
и extractfilepath там не нужен
s.Creator вне форума Ответить с цитированием
Старый 07.01.2009, 13:52   #6
KORN
Банхаммер
Участник клуба
 
Аватар для KORN
 
Регистрация: 17.02.2007
Сообщений: 1,754
По умолчанию

ну смотри сама что тебе нужно а что нет.. но учти что у тебя это будет работать только до тех пор пока ты в другую папку не перенесешь... т.е. в институте уже работать не будет

вот тебе справочник по функциям почитай.. он тебе пригодится... и вопросов у тебя должен поубавиться
Вложения
Тип файла: rar delphibasics.rar (640.0 Кб, 52 просмотров)
Перед тем как спросить ищи на форуме и в GOOGLE
KORN вне форума Ответить с цитированием
Старый 07.01.2009, 14:48   #7
Наталья111
Пользователь
 
Регистрация: 22.12.2008
Сообщений: 59
По умолчанию

Цитата:
Сообщение от KORN Посмотреть сообщение

procedure TForm1.N2Click(Sender: TObject);
begin
ShellExecute(0, 'Open', Pchar(extractfilepath(application.e xename)+'sqrt_lab4.chm'), NIL, NIL, SW_SHOWNORMAL));
end;

Pchar(extractfilepath(application.e xename)+'sqrt_lab4.chm') это путь относитеьлно твоей папки с программой и следи за типами данных
получается что мне надо написать как ты KORN впервый раз подсказал, чтобы в универе открылась? или опять я что то нетак поняла?
Наталья111 вне форума Ответить с цитированием
Старый 07.01.2009, 14:53   #8
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Если файл справки должен находиться в папке с ехе-шником, то всё можно сделать гораздо проще:
Код:
Uses
   ShellApi,...
Procedure TForm1.N2Click(Sender: TObject);
Begin
ShellExecute(Application.Handle,'Open','sqrt_lab4.chm', NIL, NIL, SW_SHOWDEFAULT);
End;
И файл справки будет запускаться в любой директории.
KORN, классный справочник!!! Спасибо!
Всегда рад помочь!
Terran вне форума Ответить с цитированием
Старый 07.01.2009, 14:55   #9
Наталья111
Пользователь
 
Регистрация: 22.12.2008
Сообщений: 59
По умолчанию

вот в таком виде у меня открывает файл sqrt_lab4.chm.
но так он у меня не откроет на другом компе?

procedure TForm1.N2Click(Sender: TObject);
begin
ShellExecute(0, 'Open', Pchar('C:\Documents and Settings\Admin\Рабочий стол\Программирование\Копия Лабораторная работа №4\sqrt_lab4.chm'), NIL, NIL, SW_SHOWNORMAL);
end;
Наталья111 вне форума Ответить с цитированием
Старый 07.01.2009, 15:04   #10
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Цитата:
Сообщение от Наталья111 Посмотреть сообщение
вот в таком виде у меня открывает файл sqrt_lab4.chm.
но так он у меня не откроет на другом компе?

procedure TForm1.N2Click(Sender: TObject);
begin
ShellExecute(0, 'Open', Pchar('C:\Documents and Settings\Admin\Рабочий стол\Программирование\Копия Лабораторная работа №4\sqrt_lab4.chm'), NIL, NIL, SW_SHOWNORMAL);
end;
Цитата:
вот в таком виде у меня открывает файл sqrt_lab4.chm.
Файл у вас будет открываться т.к. это ваш путь 'C:\Documents and Settings\Admin\Рабочий стол\Программирование\Копия Лабораторная работа №4\sqrt_lab4.chm
Цитата:
но так он у меня не откроет на другом компе?
На другом компе этот файл не запустится т.к.
1) Пути к файлу будут не верны.
2) Имя учётной записи будет другое.( У вас Admin, а там может быть что угодно).
Вариант, который я предложил выше будет запускать файл с любой директории, только самое главное что бы он находился радом с ехе-шником.
Всегда рад помочь!

Последний раз редактировалось Terran; 07.01.2009 в 15:06.
Terran вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Литература и справка по сетевому программированию Квэнди Работа с сетью в Delphi 9 14.04.2013 10:11
Справка CHM и HLP Witaliy Общие вопросы Delphi 7 30.04.2008 18:38
Русская справка AngelOfDeath Общие вопросы Delphi 1 21.04.2008 15:12
Delphi, справка. north Помощь студентам 1 13.01.2008 15:53