Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / access violation at address / 17 сообщений из 17, страница 1 из 1
04.10.2019, 12:03
    #39871574
petrovichvanya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
access violation at address
Здравствуйте, возникает ошибка "access violation at address" при любом обращение к компоненту treeview (он пустой, если там есть значения ошибки не возникает)
Код: pascal
1.
2.
3.
4.
if (tvControls.Selected.Count <> 0) then
begin
  ...
end;


ошибка упадет сразу на If
tvControls это treeview
Подскажите как сделать, чтобы ошибка не возникала?
...
Рейтинг: 0 / 0
04.10.2019, 12:19
    #39871582
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
access violation at address
04.10.2019 12:03, petrovichvanya пишет:
> Здравствуйте, возникает ошибка "access violation at address" при любом
> обращение к компоненту treeview (он пустой, если там есть значения
> ошибки не возникает)

ну так и проверяй, что он НЕ ПУСТОЙ.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
04.10.2019, 12:22
    #39871585
petrovichvanya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
access violation at address
Мимопроходящий,

так я проверяю
Код: pascal
1.
if (tvControls.Selected.Count <> 0) then 

или
Код: pascal
1.
if (tvControls.Selected.Text <> '') then


сразу же ошибку получу "access violation at address "
...
Рейтинг: 0 / 0
04.10.2019, 12:26
    #39871589
Linux_64
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
access violation at address
petrovichvanya,
Лучше проверять так:
Код: pascal
1.
If TreeView1.Selected.SelectedIndex = 0 then ...
...
Рейтинг: 0 / 0
04.10.2019, 12:27
    #39871592
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
access violation at address
это не ЭТО
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
04.10.2019, 12:29
    #39871594
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
access violation at address
petrovichvanya
Код: pascal
1.
tvControls.Selected


У меня подозрение, что у пустого дерева нет выбранного элемента...
...
Рейтинг: 0 / 0
04.10.2019, 12:30
    #39871595
pit_alex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
access violation at address
ели нет Items то Selected = nil отсюда и AV

Код: pascal
1.
if (TreeView1.Items.Count > 0) and (TreeView1.Selected.Count > 0) then
...
Рейтинг: 0 / 0
04.10.2019, 12:31
    #39871598
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
access violation at address
04.10.2019 12:29, wadman пишет:
> tvControls.Selected
> У меня подозрение, что у пустого дерева нет выбранного элемента...

там список.
в нормальном компоненте он должен был бы быть создан в конструкторе.
но видимо у treeview это не так.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
04.10.2019, 12:32
    #39871599
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
access violation at address
petrovichvanyaПодскажите как сделать, чтобы ошибка не возникала?

Перед использованием Selected всегда проверять, что он не nil. Неужели так сложно было в
отладчике посмотреть все значения?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
04.10.2019, 12:32
    #39871600
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
access violation at address
pit_alex
Код: pascal
1.
if (TreeView1.Items.Count > 0) and (TreeView1.Selected.Count > 0) then


Еще один пример AV. Элементы дерева быть могут, но выбранного может и не быть.
...
Рейтинг: 0 / 0
04.10.2019, 12:33
    #39871603
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
access violation at address
Мимопроходящийтам список.
Элемент. Список что-то вроде SelectedItems или Selections.
...
Рейтинг: 0 / 0
04.10.2019, 12:38
    #39871606
pit_alex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
access violation at address
wadmanЕще один пример AV. Элементы дерева быть могут, но выбранного может и не быть.

не будет AV
...
Рейтинг: 0 / 0
04.10.2019, 12:38
    #39871607
petrovichvanya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
access violation at address
Спасибо большое, с такой проверкой работает без ошибок
Код: pascal
1.
TreeView1.Items.Count > 0
...
Рейтинг: 0 / 0
04.10.2019, 14:05
    #39871665
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
access violation at address
pit_alexwadmanЕще один пример AV. Элементы дерева быть могут, но выбранного может и не быть.

не будет AV
Магия?
...
Рейтинг: 0 / 0
04.10.2019, 14:07
    #39871668
Gator
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
access violation at address
Проверить ТСу надо
Код: pascal
1.
 if not TreeView1.Selected = nil then 
...
Рейтинг: 0 / 0
04.10.2019, 14:26
    #39871682
YuRock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
access violation at address
wadmanpit_alexпропущено...


не будет AV
Магия?Проверять лень, но возможно, что при добавлении первого итема инициализируется (создается) список Selected
...
Рейтинг: 0 / 0
04.10.2019, 15:21
    #39871712
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
access violation at address
YuRockвозможно, что при добавлении первого итема инициализируется (создается) список Selected

Selected это свойство типа TTreeItem, а не список. Будет AV в этом случае или нет зависит
от погоды на Марсе.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / access violation at address / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]