D
DriveSoftware
Есть у ListView-а свойство CheckBoxes, если поставить в True на каждом Item-е появляется CheckBox, проблема в том что не могу отловить событие когда изменяют его состояние, как?
var
ListItemAtCursor:TListItem;
i:cardinal;
begin
ListItemAtCursor:=alarmslist.GetItemAt(X,Y);
for i := ComponentCount - 1 downto 0 do
if (Components[i] is TAlarm) and ((Components[i] as TAlarm).Tag=StrToInt(ListItemAtCursor.SubItems[2])) then
begin
(Components[i] as TAlarm).Enabled:=ListItemAtCursor.Checked;
end;
CurrentBoxStatus : Boolean; //глобальная
procedure TForm1.ListView1Changing (Sender: TObject; Item: TListItem;
Change: TItemChange; var AllowChange: Boolean);
begin
CurrentBoxStatus := Item.Checked; // запоминаем значение Item.Checked до того как юзер на нее нажал
AllowChange := True; // разрешаем ему нажать :)
end;
procedure TForm1.ListView1Change(Sender: TObject; Item: TListItem; Change: TItemChange);
begin
if Item.Checked <> CurrentBoxStatus then // юзер изменил значение Item.Checked
begin
CurrentBoxStatus := Item.Checked; // изменяем значение переменной на новое значение
{ ну а здесь уже делаем че хотим....}
end;
Change: TItemChange
Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab