Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Справка Добавлено: 28.01.04 08:44  

Автор вопроса:  cresta

Всем здравствуйте.

Такой вопрос: как можно вызвать не только конкретный раздел справки, но и перейти к конкретному месту на странице справки? Есть ли такой способ?

Ответить

  Ответы Всего ответов: 6  

Номер ответа: 1
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #1
Добавлено: 28.01.04 08:55
Если HTML-help. То вроде обычные теги должны сработать.

Ответить

Номер ответа: 2
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #2 Добавлено: 28.01.04 12:33

Справка - html, а как это можно указать, например из такой строки:

MsgBox "File not found!", vbExclamation + vbMsgBoxHelpButton, , App.HelpFile, 11

Это каким боком теги активируются, в описании ф-ции MsgBox вроде таких параметров нет?

Ответить

Номер ответа: 3
Автор ответа:
 Woolfik



Вопросов: 22
Ответов: 25
 Профиль | | #3 Добавлено: 28.01.04 23:08

Cresta, а я вот даже не знаю, как вызвать конкретный раздел справки.

Не подскажешь как? справка *.chm

я вызываю Call shell(hh. exe hrlp.chm)

Ответить

Номер ответа: 4
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #4
Добавлено: 29.01.04 00:36
А если в HTML Help добавить страницу, единственный код которой будет сосоять из перехода к конкретному месту другой страницы?

Ответить

Номер ответа: 5
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #5 Добавлено: 29.01.04 01:25

Так я ж тебе писал недавно, как сделать. Короче ещё раз, с подробностями:

1. Вызывать надо через API ф-цию HtmlHelpLongArg, декларируешь её и объявляешь константу:(код модуля)

Declare Function HtmlHelpLongArg Lib "hhctrl.ocx" _
          Alias "HtmlHelpA" (ByVal hwndCaller As Long, _
          ByVal pszFile As String, ByVal uCommand As Long, _
          ByVal dwData As Long) As Long

Public Const HH_HELP_CONTEXT = &HF 

2. В файле проекта справки, например Справка.hhp должны быть секция Alias и секция MAP. Открой файл проекта (не файл справки, а файл проекта) обычным блокнотом и посмотри, выглядит это примерно так:

[ALIAS]
IDH_CRОбщиеСведения=CR - Общие сведения.htm
IDH_CRОбщийСписокТоваров=CR - Общий список товаров.htm
IDH_CRУчётнаяКарточка=CR - Учетная карточка.htm
IDH_CRШтрихКод=CR - Штрихкод EAN-13.htm
IDH_ОбщиеСведения=Общие сведения.htm

[MAP]
#Define IDH_CRОбщиеСведения 3
#Define IDH_CRОбщийСписокТоваров 4
#Define IDH_CRОтчётЗаМесяц 8
#Define IDH_CRОтчётОпродажах 7

Если у тебя этих секций нет, их нужно создать. Я пользуюсь обычным HTML HelpWorkShop. Открываешь им свой проект справки и на вкладке project дави кнопку HtmlHelp API Information (на левом тулбаре). Появится окошко с одноименным названием, перейди на вкладку Alias и создавай секцию Alias, например так: IDH_CRШтрихКод=CR - Штрихкод EAN-13.htm

IDH_CRШтрихКод - это псевдоним темы CR - Штрихкод EAN-13.htm. Так называемый Alias. При этом псевдонимы можно указывать только к темам, которые были присоединены к проекту как topic - файлы. Их можно  присоединить, нажав на тулбаре  вкладки project кнопку Add/Remove topic files.  Создаёшь таким образом псевдоним. Сохраняешь свой файл проекта и открываешь его блокнотом. Найдешь секцию Alias и посмотри, как составлены псевдонимы тем. Затем если нет секции MAP, впиши её из блокнота: при этом должен быть указан псевдоним темы и через один пробел - её цифровой идентификатор, через который ты будешь вызывать данную тему из своего ехе. Между секцией Alias и секцией MAP должна быть одна пустая строка.

[MAP]
#Define IDH_CRОбщиеСведения 3
#Define IDH_CRШтрихКод 10

т.е. когда вызываешь из ехе справку с идентификатором 10, программа через секцию МАР определит, что надо искать псевдоним IDH_CRШтрихКод. Потом через псевдоним по секции Alias, определит, что ему соответствует htm -файл CR - Штрихкод EAN-13.htm и отобразит его на экране. Такая вот цепочка.

Когда присвоишь всем своим псевдонимам цифровые идентификаторы, закрываешь блокнот, при этом будет запрос на сохранение этих изменений.Дави сохранить. Открываешь затем его HTML Help WorkShop' ом и компилируешь свою справку. Всё, справка с идентификаторами готова.

3. Открываешь свой VB проект и ставишь на форму кнопку "Справка". В её свойствах (правое окошко в редакторе) в строке HelpContextID указываешь номер цифрового идентификатора. Например 10. А в коде кнопки пишешь:

Private Sub Command1_Click()

    On Error Resume Next
    Dim iRetCode As Long
    iRetCode = HtmlHelpLongArg(Me.hwnd, App.Path & "\Справка.chm", HH_HELP_CONTEXT, Me.ActiveControl.HelpContextID)

End Sub

При этом скомпилированый файл справки должен лежать в папке с программой. Можешь вызвать справку так:

    On Error Resume Next
    Dim iRetCode As Long
    iRetCode = HtmlHelpLongArg(Me.hwnd, App.Path & "\Справка.chm", HH_HELP_CONTEXT, 10)

При этом в свойствах кнопки указывать идентификатор не надо. При нажатии на кнопку откроется тема справки, которой присвоен идентификатор 10. Ну вроде всё. Если не разберёшься, пиши на мыло.

Я объяснил тебе, как открыть конкретный топик, теперь блин, и ты объясни мне, как открыть в конкретном топике конкретное место 

Ответить

Номер ответа: 6
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #6 Добавлено: 29.01.04 01:34
Это как перевалочный топик, что ли, и который в самой справке не высвечивается, т.е. в Contents  его нет, в проекте же этот htm - файл есть? А что, интересно, надо попробовать. Спасибо за идею

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам