Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как в ListView с CheckBox отловить событие установки галки? [D6, WinXP]


Mishenka ©   (2005-10-12 14:44:00) 

Как в ListView с CheckBox = True отловить событие установки и снятия галки?


begin...end   (2005-10-12 19:12:00) [1]

> GuAV ©   (12.10.05 19:06) [3]

Всё же лучше воспользоваться уже готовым методом GetHitTestInfoAt. И он сам сделает то же самое (как для ListView, так и для TreeView).


GuAV   (2005-10-12 19:06:00) [2]

TVInfo: TTVHitTestInfo;

procedure TForm1.TreeViewMouseDown(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
 TVInfo.pt := Point(X, Y);
 TControl(Sender).Perform(TVM_HITTEST, 0, LPARAM(@TVInfo));
end;


procedure TForm1.TreeViewClick(Sender: TObject);
begin
 if TVinfo.flags and TVHT_ONITEMSTATEICON <> 0 then
   HandleCheckChange; // изменение состояния чекбокса
end;


begin...end   (2005-10-12 18:59:00) [3]

> Mishenka   (12.10.05 14:44)

Либо назначить соответствующий обработчик OnClick или OnMouseDown, в котором вызывать GetHitTestInfoAt и проверять, есть ли в полученном множестве значение htOnStateIcon, либо отслеживать и обрабатывать нотификации LVN_ITEMCHANGED, отправляемые родительскому окну.


Del_programmer   (2005-10-12 14:50:00) [4]

Checked:=true - есть галя
Checked:=false - нет гали


Наверх

Титульная страница Поиск, карта сайта Написать письмо