CallStack Delphi

Temoxa

Турист
Регистрация
6 Фев 2015
Сообщения
39
Реакции
1
Credits
68
Ребята как отловить все события , которые происходят в проекте? (Нажатие клавиш, открытие окон) И вывести это на отдельную форму, чтобы можно было смотреть какую кнопку я нажал сейчас, какое окно подвинуЛ?

пробовал разобраться с ApplicationEvents.... не добил.

Помогите советом плз.
 

LeshaRB

Свой
Регистрация
11 Июн 2007
Сообщения
320
Реакции
467
Credits
39
покапайся на delphisource.ru
Есть книга delphi руковдсто разработчика марко канту
Там целая глава посвящена этому
 

Temoxa

Турист
Регистрация
6 Фев 2015
Сообщения
39
Реакции
1
Credits
68
Было б время для решения задачи, я сюда не писал бы)

Хочу в рабочем проекте собрать статистику, о том какие кнопки вообще не юзатся пользователями, и какие формы тоже не открываются...

Чтобы не прописывать метод логирования в каждом методе открытия окна или нажатия кнопки, хочу через события все отлавливать и складывать в бд, через месяц посмотреть что юзается)))

Мб готовое что - то есть?))
 

maxim220

Турист
Регистрация
18 Июн 2006
Сообщения
52
Реакции
0
Credits
78
Хорошее дело вы задумали :), все через это проходят. Мы - тоже проходили. Выяснилось, что никто и никогда статистику не смотрит. А делали мы все руками - факт открытия формы и факт выполнения запроса. Реализуется в виде 2-х таблиц - сеансы и деталировка.
 

LeshaRB

Свой
Регистрация
11 Июн 2007
Сообщения
320
Реакции
467
Credits
39
Хорошее дело вы задумали :), все через это проходят. Мы - тоже проходили. Выяснилось, что никто и никогда статистику не смотрит. А делали мы все руками - факт открытия формы и факт выполнения запроса. Реализуется в виде 2-х таблиц - сеансы и деталировка.

Так может сырцы дашь, а не балоболить?
В джава есть понятие перехвтчики, тут не знаю
 

oakrom

Местный
Регистрация
2 Авг 2014
Сообщения
20
Реакции
4
Credits
34
Последнее редактирование модератором:

LeshaRB

Свой
Регистрация
11 Июн 2007
Сообщения
320
Реакции
467
Credits
39
через месяц посмотреть что юзается)))

У меня правда один вопрос, а зачем?
Есть кнопка отчет за квартал по лоигке она и будет юзаться раз в квартал...

А допусти ежедноевное обновление если не автомам, то и каждый день будет юзаться
 

LeshaRB

Свой
Регистрация
11 Июн 2007
Сообщения
320
Реакции
467
Credits
39
В Java есть, перехватичики, думаю в последних версиях Delphi должно появиться что-то такое

@Loggable
public class BookService {

@Inject
@ThirteenDigits
private NumberGenerator numberGenerator;

public Book createBook(String title, BigDecimal price, String description) {
Book book = new Book(title, price, description);
book.setIsbn(numberGenerator.generateNumber());
return book;
}
}

@InterceptorBinding
@Target({ ElementType.METHOD, ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
public @interface Loggable {
}

@Interceptor
@Loggable
public class LoggingInterceptor {
@Inject
private Logger logger;

@AroundInvoke
public Object logMethod(InvocationContext ic) throws Exception {
logger.entering(ic.getTarget().getClass().getName(), ic.getMethod().getName());
try {
return ic.proceed();
} finally {
logger.exiting(ic.getTarget().getClass().getName(), ic.getMethod().getName());
}
}
}

public class LoggingProducer {
@Produces
public Logger produceLogger(InjectionPoint injectionPoint) {
return Logger.getLogger(injectionPoint.getMember().getDeclaringClass().getName());
}
}
 

JCDenton

Местный
Регистрация
15 Фев 2013
Сообщения
15
Реакции
3
Credits
28
В топике написано "Call Stack". Вопрос: как это соотносится с "отловить все события , которые происходят в проекте? (Нажатие клавиш, открытие окон) И вывести это на отдельную форму, чтобы можно было смотреть какую кнопку я нажал сейчас, какое окно подвинуЛ?"

Это как бы разные вещи.

Если нужен логгер событий - юзай логгер. Что угодно - от OutputDebugString, до SmartInspect.
Если нужен стек вызовов - юзай трассировщики. Как правило, они цепляются на исключения, но допускают ручной вызов в произвольный момент времени. JCL (JEDI Code Library, см. модуль JclDebug), EurekaLog, madExcept.