Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.09.26;
Скачать: CL | DM;

Вниз

ListView (vsReport, CheckBoxes=True)   Найти похожие ветки 

 
Fktrc ©   (2004-09-07 13:14) [0]

Hello, All.
Мне требуется отловить "событие" OnChecked для ListView. События такого, конечно, нет, в этом и проблема. Пытался вешаться на OnChanging/OnChange - в итоге куча посторонних сработок. Отделить в них события, возникающие при изменении св-ва Item.Checked от событий, возникающих при перемещении курсора по ListView, я не смог.
Срабатывать "событие" должно как от изменения CheckBox"а на выделенном ListItem"е клавишей пробела, так и по щелчку на CheckBox, припаянному к неактивному в данный момент ListItem"у.
Вешать слежение за крыжиками на отдельный поток можно, но нежелательно, для приемлемого времени реакции поток должен сканировать список с большой частотой и плюс синхронизация с главным потоком. А список может содержать до нескольких сотен, если не тысяч, элементов.
Как можно изящно решить проблему?


 
TUser ©   (2004-09-07 13:57) [1]

OnClick + ItemAtPos


 
Семен Сорокин ©   (2004-09-07 14:25) [2]

Fktrc ©   (07.09.04 13:14)  
посмотрите реализацию ф-ий ListView_GetCheckState, ListView_SetCheckState из commctrl.pas может поможет в решении
проблемы.
TUser ©   (07.09.04 13:57) [1]
не всегда ведь Checked можно поменять нажатием пробела, здесь именно OnChange надо юзать.


 
Fktrc ©   (2004-09-08 04:58) [3]

Спасибо, посмотрю.


 
Ozone ©   (2004-09-08 05:28) [4]

Тоже в свое время столкнулся с этой проблемой


procedure TFServer.ListView1MouseDown(Sender: TObject;
 Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
  Item: TListItem;
begin
    if htOnStateIcon in ListView1.GetHitTestInfoAt(X, Y) then begin
      Item := clientList.GetItemAt(X,Y);
      if Item.Checked then {...}
      else {...}
    end
end;


 
Ozone ©   (2004-09-08 05:29) [5]

Item := clientList.GetItemAt(X,Y); => Item := ListView1.GetItemAt(X,Y);


 
Fktrc ©   (2004-09-08 13:13) [6]

Спасибо.



Страницы: 1 вся ветка

Текущий архив: 2004.09.26;
Скачать: CL | DM;

Наверх




Память: 0.45 MB
Время: 0.036 c
4-1092430217
GuAV
2004-08-14 00:50
2004.09.26
Подмена WinAPI функции в своём приложении.


1-1094940593
denis_v_ne
2004-09-12 02:09
2004.09.26
Как написать в Delphi сложные математические выражения?


10-1042011765
McSimm
2003-01-08 10:42
2004.09.26
От человека, не имеющего возможности пользоваться интернетом


9-1085947496
Vin_Ghost
2004-05-31 00:04
2004.09.26
как организовать скриптовый движек


3-1093611893
Kul_Alex
2004-08-27 17:04
2004.09.26
Добавление данных в БД





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский