access violation at address

petrovichvanya
Дата: 04.10.2019 12:03:32
Здравствуйте, возникает ошибка "access violation at address" при любом обращение к компоненту treeview (он пустой, если там есть значения ошибки не возникает)
if (tvControls.Selected.Count <> 0) then
begin
  ...
end;

ошибка упадет сразу на If
tvControls это treeview
Подскажите как сделать, чтобы ошибка не возникала?
Мимопроходящий
Дата: 04.10.2019 12:19:25

04.10.2019 12:03, petrovichvanya пишет:
> Здравствуйте, возникает ошибка "access violation at address" при любом
> обращение к компоненту treeview (он пустой, если там есть значения
> ошибки не возникает)

ну так и проверяй, что он НЕ ПУСТОЙ.

Posted via ActualForum NNTP Server 1.5

petrovichvanya
Дата: 04.10.2019 12:22:55
Мимопроходящий,

так я проверяю
if (tvControls.Selected.Count <> 0) then 
или
if (tvControls.Selected.Text <> '') then

сразу же ошибку получу "access violation at address "
Linux_64
Дата: 04.10.2019 12:26:12
petrovichvanya,
Лучше проверять так:
If TreeView1.Selected.SelectedIndex = 0 then ...
Мимопроходящий
Дата: 04.10.2019 12:27:22

это не ЭТО

Posted via ActualForum NNTP Server 1.5

wadman
Дата: 04.10.2019 12:29:31
petrovichvanya
tvControls.Selected

У меня подозрение, что у пустого дерева нет выбранного элемента...
pit_alex
Дата: 04.10.2019 12:30:02
ели нет Items то Selected = nil отсюда и AV

if (TreeView1.Items.Count > 0) and (TreeView1.Selected.Count > 0) then
Мимопроходящий
Дата: 04.10.2019 12:31:55

04.10.2019 12:29, wadman пишет:
> tvControls.Selected
> У меня подозрение, что у пустого дерева нет выбранного элемента...

там список.
в нормальном компоненте он должен был бы быть создан в конструкторе.
но видимо у treeview это не так.

Posted via ActualForum NNTP Server 1.5

Dimitry Sibiryakov
Дата: 04.10.2019 12:32:02

petrovichvanya
Подскажите как сделать, чтобы ошибка не возникала?

Перед использованием Selected всегда проверять, что он не nil. Неужели так сложно было в
отладчике посмотреть все значения?..

Posted via ActualForum NNTP Server 1.5

wadman
Дата: 04.10.2019 12:32:18
pit_alex
if (TreeView1.Items.Count > 0) and (TreeView1.Selected.Count > 0) then

Еще один пример AV. Элементы дерева быть могут, но выбранного может и не быть.