1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

ListView

Тема в разделе "Delphi - программирование", создана пользователем DriveSoftware, 4 мар 2004.

Статус темы:
Закрыта.
  1. DriveSoftware

    DriveSoftware Гость

    Репутация:
    0
    Есть у ListView-а свойство CheckBoxes, если поставить в True на каждом Item-е появляется CheckBox, проблема в том что не могу отловить событие когда изменяют его состояние, как?
     
  2. admin

    admin Well-Known Member

    Репутация:
    0
    Регистрация:
    8 авг 2003
    Сообщения:
    2.754
    Симпатии:
    1
    DriveSoftware
    Элементарно, Ватсон.
    Я как-то уже бился наж этой задачкой.
    Вот код.

    Событие OnMouseUp на ListView

    Код:
    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;
    Ну есть ясна я думаю.
     
  3. DriveSoftware

    DriveSoftware Гость

    Репутация:
    0
    Серёга

    Спасибо. Но я зделал по другому =)

    Код:
    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;
     
  4. admin

    admin Well-Known Member

    Репутация:
    0
    Регистрация:
    8 авг 2003
    Сообщения:
    2.754
    Симпатии:
    1
    DriveSoftware
    Ну если работает :) То замечательно. Хотя могли бы сделать и событие onCheckBoxClick чтоль. Трудно им чтоль было?
     
  5. Guest

    Guest Гость

    Репутация:
    0
    Во блин, а в Visual Basic, например, у ListView есть событие ItemCheck! Чего действительно борландовцы кочевряжатся?
     
  6. Barmutik

    Barmutik Гость

    Репутация:
    0
    Вообще-то у Борланда это тоже есть... в эвенты OnChange and OnChnaging выведен замечательный параметр

    Код:
    Change: TItemChange
    В котором и говорится когда происходит изменение состояние чекбокса...
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей