|
|
|
Функция "Что это такое?" диалогового окна
|
|||
|---|---|---|---|
|
#18+
Нужно сделать самую обычную функцию "Что это такое?" диалогового окна. Сделал я файл справки, установил HelpContext компонентов. Работает НО текст показывается не во всплывающем окне (как во всех нормальных программах), а в стандартном окне WinHelp! ВОПРОС: Как мне сделать чтобы текст выводился во всплывающем окне? Может там в самом RTF-файле справки что-то подчеркнуть или как-то выделить нужно? Формат файла справки HLP, создавался с помощью Microsoft Help WorkShop. Работаю в C++ Builder 6. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2006, 13:51 |
|
||
|
Функция "Что это такое?" диалогового окна
|
|||
|---|---|---|---|
|
#18+
Ну где же ответы люди? Что за полтергейст, три моих темы и ни одного ответа! Ведь о земных вещах спрашиваю! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2006, 22:16 |
|
||
|
Функция "Что это такое?" диалогового окна
|
|||
|---|---|---|---|
|
#18+
Ещё один интересный факт. Команда Application->HelpCommand(HELP_CONTEXTPOPUP,102); тоже вызывает содержание раздела 102 не во всплывающем окне, а в окне WinHelp. Это ещё больше меня наводит на мысль, что что-то не так именно в файле справки. Подскажите, пожалуйста, что? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2006, 23:21 |
|
||
|
Функция "Что это такое?" диалогового окна
|
|||
|---|---|---|---|
|
#18+
В одной из старых программ нашёл: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. Лелик2Работает НО текст показывается не во всплывающем окне (как во всех нормальных программах), а в стандартном окне WinHelp! Так и будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2006, 06:16 |
|
||
|
Функция "Что это такое?" диалогового окна
|
|||
|---|---|---|---|
|
#18+
muk07В одной из старых программ нашёл: [src c++]//------------------------------------------------ bool __fastcall TfrmMain::AppHelp(Word Command, int Data, bool &CallHelp){ if(IsDeveloper && strcmp(Cfg.FindVar("DesignHelp"),"Yes")==0){ if(Data!=0){ FrontPageCall(Data); // если вызвал разработчик, то открываем FrontPage } else { Msg(USER_ERROR,NULL, "HelpContext=0"); // моя ф-я } return true; } if (Command == HELP_CONTEXT || Command == HELP_CONTEXTPOPUP) { // all context calls come here and get diverted to HTML Help Context call HtmlHelp(NULL, frmMain->m_asHelpFile.c_str(), HH_HELP_CONTEXT, Data); // VCL should not call WinHelp CallHelp = false; } return true; } Сам код не работает (куча неизвестных для моей программы идентификаторов). Ну да и фиг с ним. muk07 Лелик2Работает НО текст показывается не во всплывающем окне (как во всех нормальных программах), а в стандартном окне WinHelp! Так и будет. Что значит так и будет. Вы хотите сказать что не возможно вывести текст раздела справки во всплывающем окне? Тогда у меня к вам вопрос: - зачем тогда существует параметр HELP_CONTEXTPOPUP для функции Application->HelpCommand ? Кроме того Архангельский и Джарод Холингвэрт в своих книгах пишут что при использовании "Что это такое" текст будет выводится именно во всплывающих окнах и что никакого дополнительного программирования это не требует, достаточно установить HelpContext компонентов в соответствующие разделы справки. Кроме того Арханельский советовал если нужно вывести текст подсказки в несколько строчек (Hint выводит всё в одну) то можно использовать всё туже функцию Application->HelpCommand с параметром HELP_CONTEXTPOPUP . Может я вас или их неправильно понял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2006, 12:43 |
|
||
|
Функция "Что это такое?" диалогового окна
|
|||
|---|---|---|---|
|
#18+
Очередной полтергейст моего общения с Билдером: 1. Добавил я на динамически создаваемое диалоговое окно (в котором нужно сделать функцию "Что это такое") компонент ApplicationEvents . 2. В его событии OnHelp написал: bool __fastcall TOKBottomDlg::ApplicationEvents1Help(WORD Command, int Data, bool &CallHelp) { Beep();/*по звуку узнаю наступало ли это событие*/ WinHelp(Handle,Application->HelpFile.c_str(),HELP_CONTEXTPOPUP,Data); CallHelp=false; return true; } 3. Запускаю программу на выполнение, открываю диалоговое окно. 4. Нажал на знак вопроса затем на компонент (связанный свойством HelpContext с определённым разделом в файле помощи), появляется посказка во всплывающем окне, ещё раз жму на знак вопроса и на тот же компонент появляется всплывающее окно с текстом "С данным элементом не сопоставлен ни один раздел справки". Проделываю это ещё раз вообще ничего не происходит хотя событие OnHelp наступает (узнаю по звуку см. выше). Проделываю это ещё пять раз появляется нормальная подсказка и всё повторяется заново. Т.е. пользователь сможет получить сведения только по элементу который он выберет первым по остальным он не догадается шесть раз кликнуть впустую что-бы на седбмой посмотреть справку! Короче говоря WinHelp работает как-то нестабильно. В чём дело? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2006, 14:50 |
|
||
|
Функция "Что это такое?" диалогового окна
|
|||
|---|---|---|---|
|
#18+
Лелик2Может я вас или их неправильно понял? Да нет, просто я не в курсе такой возможности. Во времена DOS на Clipper и в простом Си я делал горячую клавишу (F1) по которой вызывалась ф-я, отыскивающая в БД текст help. Ключ для поиска для каждого экрана (сейчас формы) задавался прямо в тексте программы. Просто, но нынче совсем не модно. Окно всплывало. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2006, 14:56 |
|
||
|
Функция "Что это такое?" диалогового окна
|
|||
|---|---|---|---|
|
#18+
Ура разобрался! Для последующих поколений: Нужно было в событии OnHelp компонента ApplicationEvents написать следующее: bool __fastcall TOKBottomDlg::ApplicationEvents1Help(WORD Command, int Data, bool &CallHelp) { CallHelp=false; if ((Data>=102)&& (Data<=113))WinHelp(Handle,Application->HelpFile.c_str(),HELP_CONTEXTPOPUP,Data); return true; } P.S. числа 102 и 113 это "крайние" номера идентификаторов разделов в моём файле справки, текст которых я использую для отображения во всплывающем окне "Что это такое". Тема закрыта! Спасибо всем кто пытался мне помочь! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2006, 15:40 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=33759364&tid=2031137]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
58ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 268ms |
| total: | 407ms |

| 0 / 0 |
