Как да използвам помощта в програмите Delphi

Как да използвам помощта в програмите Delphi

    1. Как работят програмите Delphi с помощни файлове.
    2. Практика: посочете помощния файл.
    3. Помощ за поддръжка в програми Delphi.
    4. Практика: просто извикване на статична помощ.
    5. Практика: динамично извикване на контекстно-зависима помощ.
    6. Преглед на често срещаните формати на помощни файлове.
    7. Поддръжка за формати за помощ в Delphi.
    8 Заключение

Как работят програмите Delphi с помощни файлове

Всяко приложение VCL Delphi има глобален обект на приложение от тип TApplication. Този обект има свойства и методи, които засягат цялото приложение. И за активиране на помощта има свойството Application.HelpFile .

Когато на това свойство е присвоена стойност, можете да използвате методите и свойствата на обекта на приложението и вашите формуляри (прозорци), за да работите с ваша помощ. Стойността на свойството е името на помощния файл на вашата програма. Форматът за помощ може да бъде всеки от поддържаните от вашето приложение (повече за това по-късно). Засега само да отбележим, че различните формати на помощните файлове имат различни възможности (и външен вид!). Поддръжката на тези формати в самия Delphi също е различна. Следователно дали дадена функция, обсъдена по-долу, ще работи, ще зависи от избрания от вас формат на помощния файл. Но, отново, повече за това по-късно.

И така, освен обекта Application, обектите от класа TForm имат и свойството HelpFile. Когато приложението получи команда за работа със системата за помощ (например потребителят е натиснал F1), тогава приложението Delphi ще използва помощния файл, посочен в Application.HelpFile, за да изпълни тази команда. Но ако едновременно с това формулярът е активен, който има зададено свойство HelpFile, тогава за изпълнение на командата той ще използва свойството на формуляра, а не приложението.

С други думи, Form.HelpFile просто модифицира Application.HelpFile в контекста на една конкретна форма. Ако вашата програма има само един помощен файл, тогава не трябва да задавате свойствата на HelpFile на формулярите, а да задавате свойството HelpFile на обекта Application .

Практика: посочване на помощния файл

Програмно: Проект/Изглед на източник

Чрез GUI: Проект/Опции/Приложение:

  1. Кликването върху бутона "Преглед" ще ви покаже само * .hlp файлове. За да изберете файл с различен формат, трябва да изберете опцията "Всички файлове (*. *)" В отворения диалогов филтър.
  2. Избирането на помощния файл с помощта на бутона "Преглед" ще въведе пълния път до файла с изглед в полето "C: \ Потребители \ Александър \ Документи \ RADStudio \ Projects \ DemoProject \ Help \ HelpFile.hlp" - това не е много добра идея, защото на машината, където програмата ви ще бъде инсталирана по-късно, този файл ще бъде на съвсем друго място. По-добра идея е да отрежете пътя към относителния: ". \ Помощ \ HelpFile.hlp".
  3. Проблемът с предишната точка е, че относителният път е спрямо текущата директория. Което обикновено е равно на папката на вашата програма, но не винаги. Най-доброто решение би било да се поправи тази точка по следния начин:

Което ви дава 100% гаранция за работа, но. не е ли по-лесно просто да използвате програмната настройка на пътя първоначално, без да докосвате GUI?

Помощ за поддръжка в програми Delphi

Натискане на F1
Тази функция изпълнява контекстна помощ. Когато потребителят натисне F1, приложението търси помощния файл за тема с контекстен номер или ключова дума, посочени в свойствата на компонента с фокус. Ако бъде намерена една или няколко теми, се отваря помощният файл, който показва тези теми в отделен прозорец.

Бутон с въпрос в заглавието на прозореца

Този бутон активира контекстно-зависимия режим на помощ във формуляра - така наречения "Какво е това?" ("Какво е?"). Когато потребителят щракне върху този бутон, формулярът временно се деактивира и курсорът променя формата си на стрелка с въпрос:

Щракването върху която и да е контрола в този режим ще накара приложението да търси темата в помощния файл, свързан с този компонент. Ако дадена тема бъде намерена, тя ще се покаже в изскачащ прозорец.

Обикновено този метод не се използва в съвременните програми. Исторически се появява в 16-битов Windows, преди да има подсказки. Днес вместо тази функционалност е много по-лесно да използвате обичайното свойство Hint .

Бутон за помощ с Kind = bkHelp

Това е лесен начин да получите помощ, без да пишете нито един ред код. Кликването върху бутон ще отвори тема с контекстен номер или ключова дума, посочени в свойствата на самия бутон или (обикновено) на формуляра.

Application.HelpCommand
Това е гъвкав метод, който ви позволява да изпълнявате всяка команда с вашия файл за помощ. Тази команда е обсъдена по-подробно по-долу.

Application.HelpJump
Това е помощна функция, която обгръща Application.HelpCommand с команда "jump". Тя ви позволява да покажете темата за помощ с нейния идентификатор (име).

Application.HelpContext
Това е помощна функция, която обгръща Application.HelpCommand. Позволява ви да покажете темата с така наречения контекстен номер.

Application.HelpKeyword
Това е помощна функция, която обгръща Application.HelpCommand. Позволява ви да покажете темата по ключова дума.

Практика: Лесно се обадете на помощ

Всяко сериозно приложение за Windows има елемент от менюто за помощ като този:

Как да отворите помощ

И така, как да отворите прозорец на Finder? Всъщност е много просто: поставете този код в манипулатора на щракване върху елемента от менюто:

Как да отворите съдържанието за помощ

Как да отворите темата по подразбиране

Как да отворите индекса за помощ

Следващият пример показва как можете да отворите помощ в раздела индекс:

Как да отворите помощ за търсене

Следващият пример отваря прозорец за помощ с активен прозорец за търсене:

Отворете тема по име

Тази команда ще покаже темата в отделен прозорец. Ако искате да използвате изскачащия прозорец, използвайте друга команда:

Как да отворите тема по ключова дума

Работи с ключови думи. Когато натиснете F1, помощта търси теми с ключовата дума, която се появява под курсора или в инспектора на обекти. За да направите това, помощният файл трябва да съдържа списък с ключови думи, свързани с теми. Вие задавате това, когато създавате помощния файл (като посочвате ключови думи в свойствата на темата).

За показване на тема по ключова дума се използва методът Application.HelpKeyword, който взема един низ параметър - ключова дума. Например:

Практика: извикване на помощ с контекст

  • Контекстуални теми в помощния файл
  • Бутони за помощ (например бутона за помощ до OK и Cancel в диалоговите прозорци)
  • Подсказки (показва се при задържане на курсора на мишката върху обект)
  • Съобщения в лентата на състоянието

И така, сега трябва да поговорим за първата точка.

Как се активира контекстната помощ

Натискане на F1, когато фокусът на входа е върху някакъв контрол. Това е основният начин за показване на контекстно-зависима помощ. Когато потребителят заседне, той натиска F1 и програмата му показва темата за помощ, в зависимост от това къде се намира. Този метод се поддържа от Delphi и не е необходимо да пишете код за него.
Какво е това?. Това е или бутон с въпрос в заглавието на прозореца, или подобен бутон с въпрос в лентата с инструменти, или елемент от менюто Помощ/Какво е това? ... Както казах, това е старият режим на помощ. Няма да го разглеждам особено, защото в съвременните програми е много по-лесно и удобно да се използват подсказки.
Бутон с Kind = bkHelp или подобен начин. Този метод не може да се отдаде изцяло на контекстна помощ - в края на краищата, когато щракнете върху бутона, фокусът изчезва от текущия контрол. Обаче изброявам този метод като друга опция за автоматично извикване на помощ без писане на код.

Как се прилага контекстната помощ

Може би вече сте забелязали тези свойства в Object Inspector - това са свойството HelpContext и свойството HelpKeyword:

За да работи контекстната помощ, тези числа (няма значение - създадени от вас или зададени автоматично) или ключови думи трябва да бъдат присвоени на теми и зададени в свойствата на компонентите във формуляра. Номерата трябва да са уникални както в помощния файл, така и в проекта Delphi. Можете да присвоите един и същ номер на два или повече компонента - но това ще означава, че тези компоненти са свързани с една и съща тема. За разлика от контекстните числа, ключовите думи не трябва да бъдат уникални. Ако повече от една тема е свързана с една ключова дума, ще ви бъде показан прозорец, от който можете да изберете желаната тема.

Когато потребителят извика контекстната помощ (по някой от начините, описани в предишния параграф - или чрез F1, или чрез функцията „Какво е това?“, Или чрез натискане на бутона „Помощ“) - се показва темата за помощ, номерът на контекста, който е посочен в свойството HelpContext. Или, ако HelpType е зададен на htKeyword, тогава темите се показват с ключовата дума от свойството HelpKeyword. За да работи контекстната помощ, не е нужно да правите нищо друго, освен да присвоявате контекстни номера на теми и компоненти. Delphi ще свърши цялата работа автоматично.

Не е нужно да присвоявате номера на контекст или ключови думи на абсолютно всички компоненти във формуляра - в края на краищата свойствата HelpContext и HelpKeyword се наследяват. Тези. ако компонентът внезапно не е задал необходимото свойство (съответно равно на нула или празен низ), тогава се използва свойството HelpContext/HelpKeyword на неговия родител (по смисъла на Parent). Ако това свойство не е зададено и за родителя, тогава се проверява свойството на родителя. И така нататък, чак до формата. Ако свойството не е зададено за формуляра, контекстната помощ изобщо не се извиква. Ако използвате бутона за помощ с Kind = bkHelp, тогава трябва да присвоите контекстен номер или ключова дума или на него, или на формуляра.

И така, за да обобщим: за контекстна помощ, която да работи във вашата програма, имате нужда от:

Ти трябва кажете на приложението, че имате помощен файл. Това е често срещано действие за всякакъв вид помощ в приложението Delphi.

Трябва да измислите и задайте номера на контекста (или ключови думи, или и двете) теми във вашия файл за помощ. Не е нужно да правите това за всички теми. Ако е желателно изобщо да добавите ключови думи (за да работи индексът), тогава номера на контекста могат да бъдат посочени само за тези теми, които трябва да бъдат достъпни чрез контекстна помощ. Можете да включите автоматично номериране, ако вашият помощен генератор на файлове позволява.

Ти трябва задайте номера на контекста (или ключови думи) форма и компоненти върху нея във вашето приложение Delphi, за да свържете контролите в приложението с теми за помощ. Като минимум трябва да включите тези числа (ключови думи) за формуляри.

Преглед на често срещаните формати на помощните файлове

16-битова помощ за Windows, известна още като WinHelp 1.0 (.HLP), е патентован файлов формат за помощ, разработен от Microsoft за организиране на системата за помощ. Първоначалната информация се подготвя във формати RTF (текст) и BMP (изображения) и след това се генерира двоичен файл с разширение HLP с помощта на компилатора. Няма поддръжка на Unicode. Може да се декомпилира в изходни файлове. Разработено през 1990 г. и поддържано от Win16, Win32, WinNT до XP включително. Оттеглено през 2006 г. Ограничено на разположение в Windows Vista и Windows 7 (и по-нови версии) - поддръжката за него трябва да бъде инсталирана допълнително. Днес здравият не се използва от никого.

32-битова помощ за Windows, известна още като WinHelp 2.0-4.0 (.HLP + .CNT), е подобрена версия на .HLP формата, който се появи в Windows 95. Поддържа се в Win32/WinNT до Windows XP включително. Няма поддръжка на Unicode. Оттеглено през 2006 г. Ограничено на разположение в Windows Vista и Windows 7 (и по-нови версии) - поддръжката за него трябва да бъде инсталирана допълнително. Днес се използва главно от по-стари приложения или тези, които се нуждаят от специални функции на формата WinHelp.

Компилирана HTML помощ, известна още като HTML Help 1.0-1.4 (.CHM), е основният и най-популярен файлов формат за помощ, издаден през 1997 г. и поддържан от Windows 98 на всички Windows, включително Windows Vista и Windows 7. Това е компилиран файл, получен от обичайни HTML файлове със специална маркировка. Поради тази причина форматът стана популярен за създаване на електронни книги. Може да се декомпилира в изходни файлове. Промените и новите функции обаче вече не се въвеждат в този формат, а се отстраняват само намерените уязвимости. Microsoft планира да го замени с друг формат в бъдеще. Поддръжката на Unicode е ограничена.

Assistance Platform 1.0 (.H1S) е доста специфичен формат за помощ, тъй като се използва само за разширяване на вградената помощ на самата операционна система от OEM партньори. Ясно е, че не е предназначен за общо ползване.

HTML (.HTML) е просто колекция от обикновени HTM/HTML файлове. Ясно е, че този формат е доста ограничен и обикновено няма предимства пред .CHM - с изключение на пълната поддръжка на Unicode.

Portable Document Format (.PDF) - формат, създаден от Adobe Systems през 1993 г. Обикновено този формат се използва за отпечатване на помощ (по-точно ръководства) на хартия, а не като помощен файл в програмата.

Web/Online изобщо не е помощ за файлове. Отваря уебсайт със страница за помощ.