C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Вопрос о вопросе
gauldot
Отправлено: 05.03.2004, 11:58


Ученик-кочегар

Группа: Участник
Сообщений: 22



Здрасте всем
У меня есть форма с "?" вверху.
На форме есть TListBox, TButton, TImage

Выставил св-ва:
ListBox1->HelpContext = 50;
Button->HelpContext = 50;
Image1->HelpContext = 50;

Прописал событие формы:
bool __fastcall TForm1::FormHelp(WORD Command, int Data, bool &CallHelp)
{
WinHelp (Handle , "MyHelp.hlp", Command, Data);
СallHelp = false;
}

Теперь после выбора "?" и наведении его на Listbox или Button
всё работает нормально (всплывает подсказка из раздела справки №50). Не работает для Image и для самой формы (я так понял это компоненты, которые не могут принимать фокус),
как сделать чтоб работало для всего?
gauldot
Отправлено: 07.03.2004, 21:01


Ученик-кочегар

Группа: Участник
Сообщений: 22



Да уж... не прошло и три дня...
Разве без этого может обойтись любая уважающая себя программа, или
это такой тупой вопрос, что всем даже лень отвечать на него!
Asher
Отправлено: 09.03.2004, 09:25


Мастер участка

Группа: Модератор
Сообщений: 550



Привет.
Праздники были. Некоторые даже отдыхать умеют. biggrin.gif

У TImage нет HelpContext, т.к. порожден не от TWinControl.
Положи его на TPanel и назначь справку ему.

С формой должно работать. Может ты ее всю перекрыл и она не получает фокус? (Заголовок не в счет)

P.S. почему у тебя на все компоненты один раздел справки?
gauldot
Отправлено: 09.03.2004, 22:52


Ученик-кочегар

Группа: Участник
Сообщений: 22



Здорово.

QUOTE
У TImage нет HelpContext, т.к. порожден не от TWinControl.

Как же нету?! Есть! Унаследовано от TControl. А вот как раз у
TWinControl в свойствах HelpContext нету, где ты его там увидел?
QUOTE
Положи его на TPanel и назначь справку ему.

С ТPanel не прокатило, хоть и можно у него выставить фокус...получается не в фокусе дело...я теперь вообще ничего не понимаю. В принципе если прописать у TImage в OnClick строчку WinHelp (Handle , "MyHelp.hlp", HELP_CONTEXTPOPUP, 50);,
то всё будет нормально, но дело в том, что в реальной программе это событие мною уже обрабатывается, тогда встаёт задача определения, что тыкаю на TImage вопросиком, а как сделать такую проверку незнаю.
QUOTE
Может ты ее всю перекрыл и она не получает фокус?

Неперекрытого места хватает. Кстати событие формы OnHelp вообще не возникает, кроме случаев когда щёлкаешь "?" по TListBox и TButton.
Пробовал даже вручную вызвать этот OnHelp с нужными параметрами — не помогло (OnHelp вызвался, но на экране я ничего не увидел).
QUOTE
P.S. почему у тебя на все компоненты один раздел справки?

Тестированием же занимаюсь. Создал один топик и мучаю его. Приложил этот самый тестовый проект к ответу вместе с hlp-файлом.

User Attached Image Скачать файл
Project.rar



Вернуться в Вопросы программирования в C++Builder