Конференция "FreePascal" » Как подключить файл .hlp к проекту (Лазарус) ? [Win32]
 
  • Winni (28.01.10 06:58) [0]
    Здравствуйте !

    Преобразую проект Делфи7 в проект Лазарус. Файл  .hlp получен из .rtf с помощью  HCW.exe из комплекта Delphi7. HelpContext=1, HelpType = htContext. В проекте Делфи вписано имя файла = TXTPLAYER.HLP, в проекте Лазарус нет поля для файла помощи (оно есть только в инспекторе объектов - для модуля). Проект компилируется, но при нажатии на F1 справка не появляется.
     Помогите, пожалуйста. И если можно, помогите ссылкой на описание работы с Лазарус - FPC (Документация к FPC2.0.4 *.pdf - есть );
  • 0x00FF00 (28.01.10 17:51) [1]
    Winni, в отличие от Делфей, FreePascal (и Лазарь как следствие) не заточен под одну лишь Windows. А HLP-формат — это вещь, специфичная только для Windows. Поэтому, скорее всего, здесь интеграция хелпа в приложение не "заведётся" без напильника.

    Рекомендую почитать это:
    http://www.granite.ab.ca/access/winhelpapi.htm
    К сожалению, это не Pascal, а VisualBasic, но разобраться, что к чему, думаю нетрудно.

    Вызовом API-функции
    function WinHelp(wWnd: HWND; lpHelpFile: PCHAR; wCommand, wData: LongInt): LongInt;


    приложение можно "ткнуть носом" в необходимость вызова справки.

    Но тыкать придётся вручную, кодом.
  • Winni (28.01.10 22:28) [2]
    Спасибо !

    Но, тогда возможно, справку нужно (чтобы не мучаться) создать в формате .chm, который Делфи вроде бы тоже может использовать - встречал как-то описание, но сейчас вряд ли найду. Ведь не зря наверно оставили эти поля (HelpContext, HelpFile, HelpType ) в инспекторе объектов - для формы.
       
      Появилась еще заморочка. Например, в Делфи юзаю TDriveComboBox. FPC его не находит. Как я должен действовать дальше, чтобы найти: где описан этот класс в FPC (или его там нет) ? Самое ужасное, что для решения - скачал исходники, Чтобы текстовым поиском найти нужные классы и функции, но куда-то затерял. Завтра буду еще рыться по дискам. Может быть, где-то есть поиск для таких задачек ?
  • 0x00FF00 (29.01.10 02:12) [3]
    > Но, тогда возможно, справку нужно (чтобы не мучаться) создать в формате .chm

    Боюсь, что нет... СНМ — это тоже чисто microsoft'овский формат:
    http://ru.wikipedia.org/wiki/Microsoft_Compiled_HTML_Help
    Поэтому, думаю что и его FreePascal поддерживать откажется.

    Как разработчик, замечу — справку к приложениям (по крайней мере кроссплатформенным), содержащим GUI, лучше всего сохранять в обыкновенном HTML-файле.
    Если хочется сделать привязку к контролам, можно просто-напросто навешать по разделам несколько "якорей".
    Теперь, при запросе юзером справки, в Windows можно выполнить API-функцию ShellExecute с локальным адресом страницы справки и нужным якорем. Страница откроется в браузере по умолчанию, ровно на том месте, которое задумывалось (благодаря позиционированию по якорю).

    Для чего в Лазаре эти поля — честно, не знаю =)
    Как-то не приходилось с ним работать. Был либо "голый" FreePascal, либо другие языки программирования.

    Что насчёт DriveComboBox, то снова вынужден Вас огорчить.
    К стандартным контролам он никак не относится (т.к. опять же, буквы дисков во многих несовместимых с Windows операционных системах, в частности, Linux, отсутствуют как класс: все дисковые накопители представляют собой просто папки в файловой системе, каждой из которых разрешено присвоить случайное имя), и поэтому отсутствует в палитре компонентов Lazarus'а.
  • Winni (29.01.10 07:23) [4]
    Большое спасибо.
  • apostate0 © (29.03.10 08:39) [5]
  • apostate0 © (29.03.10 08:39) [6]
 
Конференция "FreePascal" » Как подключить файл .hlp к проекту (Лазарус) ? [Win32]
Есть новые Нет новых   [118640   +43][b:0][p:0.001]