![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как в 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 - нет гали