Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > ListBox, OnClick и ItemIndex


Автор: Borland_Delphi_6 20.6.2008, 17:37
Бывает ли в жизни так, что инициализируется событие OnClick для ListBox, а свойство ItemIndex при этом остается = -1 ?

Иначе говоря, нужно ли каждый раз по OnClick делать проверку:

Код

if (List.ItemIndex <> -1) then ...


?

Автор: Qu1nt 20.6.2008, 17:59
Нужно.

Автор: Borland_Delphi_6 20.6.2008, 18:03
Тогда в каких случаях происходит OnClick, а ItemIndex остается равным -1?

Автор: mr.Anderson 20.6.2008, 18:20
Borland_Delphi_6, в случае, если клик происходит на пустом месте, свободном от элементов списка. Не во всех версиях дельфы.

Автор: Borland_Delphi_6 20.6.2008, 18:21
В моем случае реакции на клик на пустое место никакой, что мне на руку, в общем-то. Если не бывает еще каких-то аналогичных ситуаций... в общем, хочу убить проверки, уж больно их много и они выглядят противно  smile

Добавлено через 8 секунд
D7

Автор: Qu1nt 20.6.2008, 18:25
Код

procedure TForm1.ListBox1Click(Sender: TObject);
begin
  with ListBox1 do
  begin
    ListBox1.DeleteSelected;
    ShowMessage(Items.Strings[ItemIndex]); // вротмненоги!)
  end;
end;

Автор: Borland_Delphi_6 20.6.2008, 18:31
Qu1nt, smile Тогда еще уточню: при OnClick'e никаких манипуляций со списком элементов не происходит smile

Ну просто очень хочется убить проверки  smile 

Автор: TForumUser 20.6.2008, 23:21
Borland_Delphi_6, в D7 OnClick не срабатывает на пустом месте. Про другие версии не скажу.

Автор: mr.Anderson 20.6.2008, 23:27
Borland_Delphi_6, угу, верно TForumUser говорит, мы с ним уже спорили на эту тему... smile Никогда не лишне перестраховаться. Поставь проверку, кода и веса это не особо прибавит, а страховочка будет. Особенно если вдруг ты дашь кому-то перекомпилить свою прогу на другой версии Дельфы...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)