Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 5 015

/ вопрос открыт /

Приветствую, уважаемые эксперты!

мне надо в своем проекте в рантайме перехватывать события "onclick" всех компонентов, даже тех, у кого пусто в обработчике. с получением при этом sender. без перехода потом на родную процедуру.

либо подменять процедуры onclick, но потом возвращать обратно.

как это реализовать?

собираюсь на основе этого в уже готовом проекте сделать справку по отдельным компонентам с возможностью пользователям самим ее набивать.

вел Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: вел (статус: Посетитель)
Вопрос отправлен: 12 февраля 2011, 08:56
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 6; последнее сообщение — 15 февраля 2011, 20:37; участников в обсуждении: 4.
min@y™

min@y™ (статус: Доктор наук), 12 февраля 2011, 10:13 [#1]:

Цитата (вел):

собираюсь на основе этого в уже готовом проекте сделать справку по отдельным компонентам с возможностью пользователям самим ее набивать.

А какое отношение справка имеет к коду?
Просто можно предоставить возможность юзерам редактировать готовый СНМ-файл, да и всё. У каждой формы добавить в BorderIcons соответственно biHelp, каждому контролу присвоить нужный HelpContext и всего делов.

Или я чего-то не понимаю?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
вел

вел (статус: Посетитель), 12 февраля 2011, 14:30 [#2]:

я задолбаюсь, в проекте исходников в совокупности на 9 мегабайт.
а тут все будет сразу сендером подписано, и по разным файликам разложено,в будущем может уже в полноценнную справку оформлю.
bugmenot

bugmenot (статус: 3-ий класс), 12 февраля 2011, 17:15 [#3]:

а в чём собственно загвоздка-то? реализуется прямолинейно в лоб итерацией по Components[]
виконання програми розпочинається з того самого мiсця, де призупинилося.

вел

вел (статус: Посетитель), 12 февраля 2011, 19:01 [#4]:

возможно вы и правы. чем лучше на лету пользоваться из редакторов?
VKHacker

VKHacker (статус: 1-ый класс), 15 февраля 2011, 07:19 [#5]:

Можно добавить на форму компонент с вкладки Additional TApplicationEvents

И обрабатывать событие OnMessage:

procedure TForm1.ApplicationEvents1Message(var var Control: TWinControl;
begin
if Msg.message = WM_LBUTTONUP then
begin
Control := FindControl(Msg.hwnd);
ShowMessage('Sender Name: ' + Control.Name);
end;
end;

Не помню как событие ON_CLICK обрабатывать. Но данный пример на мышь действует.
вел

вел (статус: Посетитель), 15 февраля 2011, 20:37 [#6]:

столкнулся с тем, что стандартная помощь не работает на вложенных popup менюшках. не пойдет.

VKHacker, спасибо. но не у всех контролов есть хендл.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:33
Выполнено за 0.02 сек.