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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.01.2017, 12:31   #1
grh
Пользователь
 
Регистрация: 24.09.2010
Сообщений: 35
По умолчанию D2010. Открытие chm-файла с любого раздела

Всем привет! В моем проекте используются формы: "Главная" (fmGlavn), "Настройки" (fmNastr). В каждой форме есть кнопка "Помощь" (btnHlp). Используется файл справки Spr.chm, который содержит разделы:
- Введение (страница Vved.htm);
- Форма ГЛАВНАЯ (fmGlavn.htm);
- Форма НАСТРОЙКИ (fmNastr.htm).
Spr.chm сформирован программой htm2chm 3.0.9.3. В качестве домашней страницы (в строке "Home:") указана страница Vved.htm. Обработчик нажатия кнопки "Помощь" в форме "Главная":
Код:
procedure TfmGlavn.btnHlpClick(Sender: TObject);
begin
  WinExec('hh Spr.chm', SW_MAXIMIZE)
end;
Обработчик нажатия кнопки "Помощь" в форме "Настройки":
Код:
procedure TfmNastr.btnHlpClick(Sender: TObject);
begin
  WinExec('hh Spr.chm', SW_MAXIMIZE)
end;
При нажатии любой из кнопок "Помощь" файл Spr.chm открывается с раздела "Введение" (страница Vved.htm). Мне нужно, чтобы при нажатии кнопки "Помощь" в форме "Главная" файл Spr.chm открывался с раздела "Форма ГЛАВНАЯ" (страница fmGlavn.htm), при нажатии кнопки "Помощь" в форме "Настройки" файл Spr.chm открывался с раздела "Форма НАСТРОЙКИ" (страница fmNastr.htm). Как это сделать? Подскажите, пожалуйста.
grh вне форума Ответить с цитированием
Старый 23.01.2017, 13:43   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

погуглил.

Цитата:
Код:
hh.exe   FILE.chm::/index.htm[#якорь]	-	Открыть на заданной странице
попробуйте так:
Код:
procedure TfmNastr.btnHlpClick(Sender: TObject);
begin
  WinExec('hh Spr.chm::/fmNastr.htm', SW_MAXIMIZE)
end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 23.01.2017, 13:48   #3
beegl
instagram
Участник клуба
 
Аватар для beegl
 
Регистрация: 24.05.2008
Сообщений: 1,451
По умолчанию

Цитата:
Сообщение от grh Посмотреть сообщение
Обработчик нажатия кнопки
Код:
//открыть CHM справку на нужной странице (установить фокус на нужной странице CHM справки)
ShellExecute( Handle, 'open', 'C:\WINDOWS\hh.exe', 'D:\AIMP2.chm::/bookmarks.html', nil,SW_SHOWNORMAL);
beegl вне форума Ответить с цитированием
Старый 23.01.2017, 15:17   #4
grh
Пользователь
 
Регистрация: 24.09.2010
Сообщений: 35
По умолчанию

Serge_Bliznykov, Ваш код работает. Все отлично, спасибо!!!
grh вне форума Ответить с цитированием
Старый 23.01.2017, 15:56   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от grh Посмотреть сообщение
Serge_Bliznykov, Ваш код работает.
Всегда пожалуйста.


Обратите внимание, что код, предложенный beegl скорее всего тоже сработает. там использован тот же самый подход.
Только в нём нужно подправить имена файла CHM и имя открываемой страницы.
Ну и ещё не стоит привязываться к тому, что Windows установлена в папку C:\Windows и что hh.exe находится именно там.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Открытие файлов в QT. Как сделать открытие файла, через QMenuBar ? progjar Qt и кроссплатформенное программирование С/С++ 3 27.07.2016 16:08
Подключение файла CHM Кирф Общие вопросы Delphi 2 14.08.2012 16:40
при открытие "любого сайта" сперва идут иероглифы затем непосредственно сам сайт kasya Софт 5 20.06.2011 20:56
Чтение по биту из любого файла AkzaR Общие вопросы C/C++ 5 11.12.2007 21:21
как перехватить открытие чужого приложенияпытаюсь перехватить открытие любого приложе rpy3uH Win Api 2 02.12.2006 12:12