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

Вниз

TListView   Найти похожие ветки 

 
Аноним   (2004-04-09 14:36) [0]

Если поставить свойство Checkboxes = true, то возле каждого эл-та появится свой CheckBox. Вопрос - как обработать событие изменения состояния этого самого CheckBox"a?

Спасибо.


 
panov ©   (2004-04-09 14:37) [1]

OnClickCheck


 
Аноним   (2004-04-09 14:41) [2]

Нет там такого обработчика...


 
panov ©   (2004-04-09 14:46) [3]

Точно, ошибся.
Для этой цели есть TCheckListBox.

Либо использовать проверку на изменение при OnClick, например,
проходя в цикле по ListView...


 
Аноним   (2004-04-09 14:48) [4]

TO panov ©[3]

При клике на сам элемент его CheckBox не меняется, для этого нужно кликнуть на него непосредственно...

Как мне быть?


 
SAA   (2004-04-09 15:04) [5]

procedure TForm1.ListViewChange(Sender: TObject; Item: TListItem;
 Change: TItemChange);
begin
if Item.Checked then ShowMessage(Item.Caption+"    Checked")
else ShowMessage(Item.Caption+"    not Checked");

end;


 
Аноним   (2004-04-09 15:11) [6]

TO SAA[5]

Но тогда ShowMessage будет появляться даже в том случае, если мы не изменили CheckBox, что не есть хорошо.


 
Гаврила   (2004-04-09 15:20) [7]

Значит так
нужно обрабатьвать 2 ситуации
1. выделение произошло мышкой
на OnMousDown вызываем GetHitTestInfoAt
если клик произошел именно на области с чек-боксом, в результируещем наборе  будет присутствовать флаг htOnStateIcon

2. Выделение произошло нажатием пробела
соответственно обрабатываем OnKeyDown


 
panov ©   (2004-04-09 15:26) [8]

procedure TForm1.ListView1Change(Sender: TObject; Item: TListItem;
 Change: TItemChange);
var
 Res: Boolean;
begin
 if Item.Checked<>Boolean(Item.Data) then
 begin
    ShowMessage(Item.Caption+ " Changed!");
    Item.Data := pointer(Boolean(Item.Data)=False);
 end;
end;


 
panov ©   (2004-04-09 15:29) [9]

Да, еще вот это:

procedure TForm1.FormCreate(Sender: TObject);
var
 i: Integer;
begin
 for i := 0 to ListView1.Items.Count-1 do Pointer(ListView1.Items[i].Checked);

end;


 
panov ©   (2004-04-09 15:30) [10]

for i := 0 to ListView1.Items.Count-1 do ListView1.Items[i].Data := Pointer(ListView1.Items[i].Checked);


 
Аноним   (2004-04-09 15:30) [11]

TO panov ©[8]

Прибольшой сенкс.


 
SAA   (2004-04-09 15:35) [12]

TO panov ©[8]
Мозг однако :))



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

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

Наверх




Память: 0.49 MB
Время: 0.022 c
7-1077878616
aabout
2004-02-27 13:43
2004.04.25
Программное переключение клавы


1-1081618730
Анатолий Ксюндзский
2004-04-10 21:38
2004.04.25
TNotifyEvent


1-1081139267
jenbond
2004-04-05 08:27
2004.04.25
GExpert или CodeRush


4-1077854513
-=[SDA]=-
2004-02-27 07:01
2004.04.25
Что такое @Localname[1]??? в GetHostByName???


8-1073771619
alex-drob
2004-01-11 00:53
2004.04.25
Печать