Мастера DELPHI, Delphi programming community Рейтинг@Mail.ru Титульная страница Поиск, карта сайта Написать письмо 
| Новости |
Новости сайта
Поиск |
Поиск по лучшим сайтам о Delphi
FAQ |
Огромная база часто задаваемых вопросов и, конечно же, ответы к ним ;)
Статьи |
Подборка статей на самые разные темы. Все о DELPHI
Книги |
Новинки книжного рынка
Новости VCL
Обзор свежих компонент со всего мира, по-русски!
|
| Форумы
Здесь вы можете задать свой вопрос и наверняка получите ответ
| ЧАТ |
Место для общения :)
Орешник
Коллекция курьезных вопросов из форумов
Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / rsdn.org

 
Чтобы не потерять эту дискуссию, сделайте закладку « предыдущая ветвь | форум | следующая ветвь »

HTML help [Delphi, Windows]


Dimaxx ©   (28.04.20 17:39

Доброго времени суток.

Есть у кого пример работы с сабжем? По F1 справка, заданная в KOLProject, запускается. Но если добавить кнопку HelpContextIcon у формы, то даже при заданном HelpContext, скажем, у метки, справка не вызывается (кликаем кнопку в заголовке и кликаем на метку), событие OnHelp у форму также не срабатывает.


QAZ ©   (13.05.20 20:22[1]

все допмесаги нужно ловить в онмессаже формы


Dimaxx ©   (21.05.20 16:26[2]

И какое же сообщение ловить в этом случае? WM_HELP не подходит - это для нажатия F1.


QAZ ©   (21.05.20 21:38[3]

чтоб WM_HELP заработал нужно задать HelpContext у самой формы <> 0
но вот только приходить будет только он, контексты детей мимо, видимо косяк в коле, я не разбирался


Dimaxx ©   (22.05.20 12:50[4]

Ну в принципе можно приделать костыль в виде получения координат курсора относительно формы и проверять в какой RECT контрола попадает точка. Считываем у контрола HelpContext и вызываем CallHelp.


Dimaxx ©   (22.05.20 13:11[5]

procedure TForm1.KOLForm1Help(var Sender: PControl; var Context: Integer; var Popup: Boolean);
var
 I: integer;
 P: TPoint;
begin
 GetCursorPos(P);
 P := Form.Screen2Client(P);
 for I := 0 to Form.ChildCount - 1 do
   begin
     Sender := Form.Children[I];
     if PointInRect(P,Sender.ControlRect) then
       begin
         Context := Sender.HelpContext; // изменим контекст
         Exit;
       end;
   end;
 Sender := nil;  // запретим вывод справки
end;


версия для печати

Написать ответ

Ваше имя (регистрация  E-mail 







Разрешается использование тегов форматирования текста:
<b>жирный</b> <i>наклонный</i> <u>подчеркнутый</u>,
а для выделения текста программ, используйте <code> ... </code>
и не забывайте закрывать теги! </b></i></u></code> :)


Наверх

  Рейтинг@Mail.ru     Титульная страница Поиск, карта сайта Написать письмо