-
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]Большое спасибо.