![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка
Tadeush © (2002-02-13 12:26:00)Как перехватить ошибку возникающую при клике на незаполненной области TListView ?
Tadeush (2002-02-13 16:03:00) [1]Звиняйте за тупость все сделал. return забыл поставить.
Спасибо за подмогу
Tadeush (2002-02-13 16:01:00) [2]Все верно.... все работает... Сообщение выводится. Но после клика на ОК
Винды выдают свое сообщение об ошибке в проекте.
Виктор Щербаков (2002-02-13 15:53:00) [3]if (ListView1->Selected == NULL)
{
ShowMessage("Не выбрано");
return;
}
McSimm (2002-02-13 15:53:00) [4]В ситуации когда (!G) нельзя попадать на следующую строку.
Си не помню уже, по русски можно?
ЕСЛИ (!G) то {I=-1; ShowMessage("Не выбрано");}
иначе I = ListView1->Selected->Index;
Tadeush (2002-02-13 15:48:00) [5]bool G=ListView1->Selected;
if (!G) {ShowMessage("Не выбрано");}
int I = ListView1->Selected->Index;
переделал вот так. При false появляется сообщение а потом ошибка.
и что?
McSimm (2002-02-13 15:25:00) [6]> int I = ListView1->Selected->Index;
ListView1->Selected может оказаться равным nil.
В этом случае попытка вызвать
ListView1->Selected->Index
Приводит к ошибке доступа.
Поэтому перед вызовом Selected->Index надо проверить, не равен ли Selected нулю ( nil). Если равен - значит не выбран ни один элемент.
Tadeush (2002-02-13 15:20:00) [7]или я дурак или одно из трех
но не понятно
Юрий Зотов (M) (2002-02-13 14:51:00) [8]Так пойдет?
with ListView1 do
if Selected = nil then I := -1 else I := Selected.Index
Tadeush (2002-02-13 14:43:00) [9]void __fastcall TForm1::ListView1Click(TObject *Sender)
{
int I = ListView1->Selected->Index;
.
.
.
}
Ну примерно так. Правдо это в си. Но все похоже я думаю.
Юрий Зотов (M) (2002-02-13 12:37:00) [10]Зависит от Вашего кода. По-видимому, где-то Вы обращаетесь к Selected, а после такого клика он получается nil.
Приведите код, дающий Exception.