PDA

Просмотр полной версии : В чем ошибка???


SultanOFF
27.11.2009, 22:12
Здравствуйте. Имеется код

if listview1.Items.Item[listview1.ItemIndex].Checked= true then
listview1.PopupMenu:=popupmenu1;
который по Моему суждению должен, если в listview1 на каком нить элементе щелкнуть, показывать контекстное меню, все так в принципе и работает, но если щелкнуть в listview1 на пустом пространстве(тоесть ни на элементе) то вылетает ошибка :confused: Почему и как это исправить?

transserg
27.11.2009, 22:16
сделай проверку

if listview1.ItemIndex <>-1 then
if listview1.Items.Item[listview1.ItemIndex].Checked= true then
listview1.PopupMenu:=popupmenu1;

SultanOFF
27.11.2009, 22:27
так то работает, но опять нюанс:
допустим если в listview1 загрузить элементы, пощелкать на пустом поле, то хорошо контекстное меню не выводится, однако если щелкнуть на элемент, а затем снова на пустом поле то контекстное меню появляется! как это исправить? :)

transserg
27.11.2009, 22:50
SultanOFF я немного не понял этого шаманства, если перевести на первый элемент чтоб юзеру не стразу захотелось шелкать на пустом месте

SultanOFF
27.11.2009, 23:09
если перевести на первый элемент чтоб юзеру не стразу захотелось шелкать на пустом месте не до конца ясно что вы имели ввиду :)

transserg
27.11.2009, 23:18
SultanOFF тоесть после добавления в список элементов выделяеш первый...

SultanOFF
27.11.2009, 23:29
в общем проблему решил
ListView1.PopupMenu:=nil;
if ListView1.ItemIndex<>-1 then
if listview1.Items.Item[listview1.ItemIndex].Checked then
listview1.PopupMenu:=popupmenu1;