Главная страница
    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.46 MB
Время: 0.025 c
3-1080655692
DimonNew
2004-03-30 18:08
2004.04.25
Компонеты Rave и ADO.NET


3-1080796265
DrAculenok
2004-04-01 09:11
2004.04.25
Не могу заInsertить данные:


14-1081134433
Паниковский
2004-04-05 07:07
2004.04.25
"Мир программирования"


3-1080624578
russko
2004-03-30 09:29
2004.04.25
Запрет дублирующихся записей


6-1077906679
Magician_g
2004-02-27 21:31
2004.04.25
Как начать закачивать файл с определенного места





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский