Вверх ↑
Ответов: 2293
Рейтинг: 678
#1: 2014-07-10 19:50:31 ЛС | профиль | цитата
nesco писал(а):
Короче, никакой MouseMove не происходит при HDN_ITEMCHANGING. Он работает точно так же, как и HDN_ITEMCHANGED, только выдает значение перед изменением
У меня тоже не происходит, а вот за других не ручаюсь. Думаю вы должны знать почему не происходит, просто забыли.
Вставляем такой код:
#pas
WM_NOTIFY:
case HD_NOTIFY(Pointer(Msg.LParam)^).Hdr.code of
-320 : begin
dtInteger(di, PHDNotify(PNMHEADER(Msg.LParam))^.pItem^.cxy);
_hi_onEvent_(_event_onClick, di);
end;
и тестируем на такой схеме:code_33980.txt и сколько сплитер заголовка не двигать события не происходят, только при отпускании.
По умолчанию в винде эти события все же происходят. Эту у нас с вами они отключены. У меня XP и включить их могу так: Нажимаю клавиши Win+PauseBreak, а дальше по картинки:
win_setting.png
После нажатия клавиши применить, события сыпятся как при MouseMove.   nesco, вы бы не брезговали и подсматривали в мои каракули из этой темы: MTStrTbl дополнение, вот вам для удобства pas файл из этой темы: himtstrtbl_test_sla8a.zip
У меня ведь получилось заблокировать изменения ширины столбцов и даже отображение курсора над сплитером удалось убрать.
  Если у вас получится обнаружить событие при сдвиге вертикального скролла (когда ширина всех столбцов больше ширины компонента), то можно будет попробовать сделать отдельный элемент для создания собственных заголовков столбцов.
карма: 11

0
файлы: 3win_setting.png [31.5KB] [573], himtstrtbl_test_sla8a.zip [13.6KB] [320], code_33980.txt [288B] [304]