![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как отловить двойной клик на заголовке ListView возле разделителя [D5]
MegaVolt © (2005-07-27 10:20:00)Как отловить двойной клик на заголовке ListView возле разделителя колонок? По которому происходит изменение размераколонки так чтобы влезли все строки? В виртуальном режиме он работает не так как хотелось бы :(
Подскажите как отловить это нажатие и вставить свой обработчик.
Заранее благодарен
MegaVolt (2005-07-27 14:50:00) [1]>Кстати, в твоем коде пропущен inherited.
Так я специально его не вставил. Если его вставить то колонки выравниваются автоматом но не так как я хочу. Потому я сам их обработаю а сообщение дальше не пускаю.
Leonid Troyanovsky (2005-07-27 14:39:00) [2]
> MegaVolt © (27.07.05 14:20) [10]
> так я не планирую в юниксах работать. Мне бы в виндах и
> хватит.
> HDN_DIVIDERDBLCLICKW он для всех Win работает?
Дык, я немного про другое (не про юниксоидность).
Я не знаю, в каких версиях Windows требуется
HDN_DIVIDERDBLCLICKA. Скорее всего, оное зависит
от версии тех библиотек общих контролов, которые
используются в системе.
Пробывал в 2003 сервер, 98: HDN_DIVIDERDBLCLICKW -
нормально. 95 у меня нет под рукой.
На самый худой случай можно проверять оба значения
(интервалы не перекрываются).
Кстати, в твоем коде пропущен inherited.
--
Regards, LVT.
MegaVolt (2005-07-27 14:27:00) [3]Leonid Troyanovsky
так я не планирую в юниксах работать. Мне бы в виндах и хватит.
HDN_DIVIDERDBLCLICKW он для всех Win работает?
Спасибо за помощь.
Низкий поклон специалисту :)
MegaVolt (2005-07-27 14:20:00) [4]Leonid Troyanovsky
так я не планирую в юниксах работать. Мне бы в виндах и хватит.
HDN_DIVIDERDBLCLICKW он для всех Win работает?
Спасибо за помощь.
Низкий поклон специалисту :)
Leonid Troyanovsky (2005-07-27 14:06:00) [5]
> MegaVolt © (27.07.05 13:48) [8]
> А что значит фраза "для моей системы"? Есть шанс что под
> другой виндой работать не будет?
Проверять в 9х лениво :)
Но, о чем-то борланды задумывались, делая
HDN_DIVIDERDBLCLICK = HDN_DIVIDERDBLCLICKA;
Т.е., лучше определить юникодность системы и
действовать в зависимости от.
--
Regards, LVT.
MegaVolt (2005-07-27 13:48:00) [6]Ура-а-а-а-а-а заработало :)
А что значит фраза "для моей системы"? Есть шанс что под другой виндой работать не будет?
Leonid Troyanovsky (2005-07-27 13:36:00) [7]
> MegaVolt © (27.07.05 12:03) [6]
> Ловлю так:
> Что не так?
Видимо, для твоей системы, надо HDN_DIVIDERDBLCLICKW.
--
Regards, LVT.
MegaVolt (2005-07-27 12:03:00) [8]Ловлю так:
Что не так?
TListView_ = class(TlistView)
private
procedure W123(var Message: TWMNOTIFY); message WM_NOTIFY;
end;
procedure TListView_.W123(var Message: TWMNOTIFY);
begin
if Message.NMHdr^.code=HDN_DIVIDERDBLCLICK then ShowMessage('123');
end;
MegaVolt (2005-07-27 12:01:00) [9]Ловлю так:
Что не так?
TListView_ = class(TlistView)
private
procedure W123(var Message: TWMNOTIFY); message WM_NOTIFY;
end;
procedure TListView_.W123(var Message: TWMNOTIFY);
begin
if Message.NMHdr^.code=HDN_DIVIDERDBLCLICK then ShowMessage('123');
end;
Leonid Troyanovsky (2005-07-27 11:49:00) [10]
> Попробовало отловить. Не ловится :( От самих данных ловится
> а от заголовков невозникает :(
Заголовки - это, видимо, header control
(его хендл можно узнать - LVM_GETHEADER).
А событие - HDN_DIVIDERDBLCLICK, в форме WM_NOTIFY.
Посылается паренту (хидера), т.е. листвью.
--
Regards, LVT.
MegaVolt (2005-07-27 10:46:00) [11]Попробовало отловить. Не ловится :( От самих данных ловится а от заголовков невозникает :(
MegaVolt (2005-07-27 10:37:00) [12]> найти графические позиции каждого разделителя, и отрабатывать двойной клик по хидеру в этих позициях.
Т.е. обрабатывать все события WM_LBUTTONDBLCLK и те что меня устраивают уничтожать Dispatch?
alpet (2005-07-27 10:27:00) [13]MegaVolt © (27.07.05 10:20)
Нет такого события (контрол сам реагирует на обычный WM_LBUTTONDBLCLK). Так что тебе надо действовать аналогичным способом - найти графические позиции каждого разделителя, и отрабатывать двойной клик по хидеру в этих позициях.