Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.03.2009, 13:28   #1
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию Ошибка inaccessible value

При работе с классами выскакивает ошибка ''inaccessible value''
Как от нее избавиться?
Вадим Буренков вне форума Ответить с цитированием
Старый 25.03.2009, 13:33   #2
XuTpbIu
Злобстер
Форумчанин
 
Аватар для XuTpbIu
 
Регистрация: 19.03.2009
Сообщений: 134
По умолчанию

Код где "выскакивает" ошибка в студию
От знаний ещё никто не умирал, но рисковать не стоит.
XuTpbIu вне форума Ответить с цитированием
Старый 25.03.2009, 13:45   #3
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию

Код:
type
        TEnemy = class
  Enemy: Tbitmap;  
  Boom: Tbitmap;  
  Xpos,Ypos:integer;
  Xspeed, Yspeed:integer;
  EnemyBorn : boolean;
  test:integer;
  Procedure CreateEnemy;
  procedure DestroyEnemy;
  procedure DrawEnemy;
end;
Обьявляю переменную:
Код:
var
Enemy1:TEnemy;
Когда пытаюсь обратится к переменной выдает ошибку
Код:
Enemy1.test:=1; {ошибка}
Вадим Буренков вне форума Ответить с цитированием
Старый 25.03.2009, 13:55   #4
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

Перед присваиванием попробуй :
Код:
Enemy1 := TEnemy.Create;
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Старый 25.03.2009, 13:57   #5
XuTpbIu
Злобстер
Форумчанин
 
Аватар для XuTpbIu
 
Регистрация: 19.03.2009
Сообщений: 134
По умолчанию

Цитата:
Procedure CreateEnemy;
procedure DestroyEnemy;
лучше бы засунуть в конструктор и деструктор. Вам виднее кончено, но это чисто мой совет.
От знаний ещё никто не умирал, но рисковать не стоит.
XuTpbIu вне форума Ответить с цитированием
Старый 25.03.2009, 13:59   #6
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию

Kotofff спасибо огромное!!!!!
Вадим Буренков вне форума Ответить с цитированием
Старый 13.12.2012, 11:09   #7
ryabis
 
Регистрация: 04.02.2010
Сообщений: 3
По умолчанию

Столкнулся с подобной проблемой.
На форме лежит пустой TListView.
В какой-то момент времени вызывается функция:
Код:
procedure TfrCollect.setImei(id, imei, ip : string);
var
  i  : integer;
  Item : TListItem;
begin
  if lvConnections.Items.Count = 0 then
    begin
      Item := lvConnections.Items.Add;
      Item.Caption := id;
      Item.SubItems.Add(IMEI);
      Item.SubItems.Add(ip);
      exit;
    end;
  for i:= 0 to lvConnections.Items.Count - 1
  do begin
    if (lvConnections.Items[i].SubItems[0] = imei)
    and (lvConnections.Items[i].SubItems[1] = ip)
    then exit;    
  end;

   Item := lvConnections.Items.Add;
   Item.Caption := id;
   Item.SubItems.Add(IMEI);
   Item.SubItems.Add(ip);

end;
При входа в эту процедуру приложение иногда вылетает.
Если ставить брэйкпоинт то на занчении 'lvConnections.Items.Count' пишет 'Inaccessible value'.
ryabis вне форума Ответить с цитированием
Старый 13.12.2012, 11:38   #8
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,899
По умолчанию

Код:
Item.SubItems.Add(IMEI);
Для этого по-моему надо , чтобы были созданы колонки, например, Columns.Add (ну или в дизайнере формы), есть такое у Вас ? Потом, листвью должен быть Style = vsReport, так это ?
Бряк показывает недоступную величину не обязательно из-за проблемы, а надо ещё попробовать зайти в свойства бряка и поставить галочку "allow function calls" - тогда он будет "повнимательнее" работать.

Наличие проблемы "иногда" говорит о невыполнении каких-то скрытых условий или каких-то подводных камней. Например, косяки сборки проекта ) пересобирали ? Тут лучше иметь воспроизводимый тест-кейс, киньте либо проект архивом, либо надёргайте того, что имеет отношение к ошибке в отдельный проект (и убедитесь что бага повторяется) - и киньте сюда. Также возможно , что при сборке такого проекта Вы найдёте эту проблемку. Плюс сообщите, когда стала проявляться проблема - сразу при написании кода, или сперва всё работало тут, а потом в др. месте добавили что-то и начало сыпаться.
phomm вне форума Ответить с цитированием
Старый 13.12.2012, 11:49   #9
ryabis
 
Регистрация: 04.02.2010
Сообщений: 3
По умолчанию

phomm, да.
Style = vsReport
3 колонки.
Не понятно, почему при работающем приложении (то есть TListView создан) нет доступа к параметру Count?..
ryabis вне форума Ответить с цитированием
Старый 13.12.2012, 12:10   #10
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,899
По умолчанию

Всё просто , Count - свойство и работает через соответствующие методы, и дельфи не всегда даёт возможность вызывать эти методы при отладке (ибо побочные эффекты), о чём я и сказал - что надо поставить галку "allow function calls" - чтобы дельфи точно вызывала методы для свойства.

Ну и, негоже, товарищ, из 10 вопросов (условно) отвечать только на пару. Проверьте всё, о чём я писал и отпишите пост по всем моментам, по возможности, с прикреплением проекта.
phomm вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Nero - ошибка драйвера DMA. ошибка CRC NecRoMat Софт 5 09.05.2012 01:29
Ошибка!! Blackmore БД в Delphi 0 10.05.2008 11:43
Ошибка LeoN Общие вопросы Delphi 5 25.04.2007 11:22