В чем ошибка???

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by SultanOFF, 27 Nov 2009.

  1. SultanOFF

    SultanOFF Member

    Joined:
    4 Jun 2009
    Messages:
    156
    Likes Received:
    6
    Reputations:
    0
    Здравствуйте. Имеется код
    Code:
    if listview1.Items.Item[listview1.ItemIndex].Checked= true then
    listview1.PopupMenu:=popupmenu1;
    который по Моему суждению должен, если в listview1 на каком нить элементе щелкнуть, показывать контекстное меню, все так в принципе и работает, но если щелкнуть в listview1 на пустом пространстве(тоесть ни на элементе) то вылетает ошибка :confused: Почему и как это исправить?
     
  2. transserg

    transserg Elder - Старейшина

    Joined:
    2 Jul 2008
    Messages:
    147
    Likes Received:
    25
    Reputations:
    2
    сделай проверку
    Code:
    if listview1.ItemIndex <>-1 then
    if listview1.Items.Item[listview1.ItemIndex].Checked= true then
    listview1.PopupMenu:=popupmenu1;
    
     
  3. SultanOFF

    SultanOFF Member

    Joined:
    4 Jun 2009
    Messages:
    156
    Likes Received:
    6
    Reputations:
    0
    так то работает, но опять нюанс:
    допустим если в listview1 загрузить элементы, пощелкать на пустом поле, то хорошо контекстное меню не выводится, однако если щелкнуть на элемент, а затем снова на пустом поле то контекстное меню появляется! как это исправить? :)
     
  4. transserg

    transserg Elder - Старейшина

    Joined:
    2 Jul 2008
    Messages:
    147
    Likes Received:
    25
    Reputations:
    2
    SultanOFF я немного не понял этого шаманства, если перевести на первый элемент чтоб юзеру не стразу захотелось шелкать на пустом месте
     
  5. SultanOFF

    SultanOFF Member

    Joined:
    4 Jun 2009
    Messages:
    156
    Likes Received:
    6
    Reputations:
    0
    не до конца ясно что вы имели ввиду :)
     
  6. transserg

    transserg Elder - Старейшина

    Joined:
    2 Jul 2008
    Messages:
    147
    Likes Received:
    25
    Reputations:
    2
    SultanOFF тоесть после добавления в список элементов выделяеш первый...
     
  7. SultanOFF

    SultanOFF Member

    Joined:
    4 Jun 2009
    Messages:
    156
    Likes Received:
    6
    Reputations:
    0
    в общем проблему решил
    Code:
    ListView1.PopupMenu:=nil;
    if ListView1.ItemIndex<>-1 then
      if listview1.Items.Item[listview1.ItemIndex].Checked then
        listview1.PopupMenu:=popupmenu1;