Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   В чем ошибка??? (https://forum.antichat.xyz/showthread.php?t=159584)

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;



Время: 04:28