![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как узнать, по какой колонке был клик в TListView? [D7, WinXP]
avoid © (2007-10-29 18:33:00)Подобный вопрос частично решен здесь
http://delphiworld.narod.ru/base/tlistview_column_click.html
http://www.btc.lancom.ru/programming/base/tlistview_column_click.html
однако эта функция не работает, если у ListView включен RawSelect=True. Также если поле SubItem пустое выдает значение 0.
Может ли кто-то подсказать как сделать работу с включенным RawSelect и как быть с пустыми SubItem?
avoid (2007-10-29 22:19:00) [1]Спасибо!
Lacmus (2007-10-29 21:18:00) [2]
uses
CommCtrl;
function TListViewX.GetItemAtX(X, Y: integer;
var Col: integer): TListItem;
var
hHeader: THandle;
HitTestInfo: HD_HITTESTINFO;
begin
Result := GetItemAt(X, Y); Col := -1;
if ViewStyle = vsReport then begin
hHeader := SendMessage(Handle, LVM_GETHEADER, 0, 0);
if hHeader <> 0 then begin
FillChar(HitTestInfo, SizeOf(HitTestInfo), 0);
HitTestInfo.Point := Point(X, 0);
Col := SendMessage(hHeader, HDM_HITTEST, 0, Integer(@HitTestInfo));
end
end
end;