Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.02.11;
Скачать: CL | DM;

Вниз

То ли классы не работают, то ли я...   Найти похожие ветки 

 
Agent[007] ©   (2007-01-17 17:03) [0]

Народ... Я уже ниче не пойму... Посмотрите... Я тут создал класс и подклассы:

 TMenuItem = class
 public
   Caption : string;
   Hint    : string;
 end;

 TMenuSub = class(TMenuItem)
 public
   Items: array of TMenuItem;

   procedure AddItem(...);
 end;

 TMenuButton = class(TMenuItem)
 public
   Action : string;
 end;


И описал процедуру:

procedure TMenuSub.AddItem(...);
 var
   ...

 begin
   ...

   SetLength(Items, Length(Items) + 1);

   ...
 end;


И у меня возникает EAccessViolation на строке, где я меняю размер массива... Что же делать?! ПОМОГИТЕ, ПОЖАЛУЙСТА !!!


 
Сергей М. ©   (2007-01-17 17:06) [1]


> TMenuItem


Какого хрена ты использовал имя класса, уже использованное Борландом ?


 
гостъ   (2007-01-17 18:19) [2]

У меня не возникает AV ни в той, ни в других строках, я просто скопировал твой класс и откомпилировал в тем виде, что ты показал.

Вопрос - а как ты создаешь экземпляр(ы) своих классов?

Кстати, советую смотреть, при таких вариантах классов как у тебя, в сторону наследников от TCollection, TCollectionItem, примеры работы есть в тех же исходниках Дельфи.
Будет выглядеть поаккуратнее и соответствуя "концепции" :), примерно так:

type
 TMenuCollection = class ( TCollection )

 end;

 TMenuCollectionItem = class ( TCollectionItem )

 end;

 TMenuCollectionItemClass = class of TMenuCollectionItem;

----------------

Борланд может использовать все что хочет, что не ограничивает меня в использовании того, что хочу использовать я...
Конечно, не желательно давать своим классам имена уже объявленных классов, но хмм.. "какого хрена" - это не ошибка компилятора.


 
Ega23 ©   (2007-01-17 18:47) [3]


> SetLength(Items, Length(Items) + 1);


Почему массив? Почему не List?


 
Agent[007] ©   (2007-01-24 09:28) [4]

А как пользоваться этими TCollection ?..



Страницы: 1 вся ветка

Текущий архив: 2007.02.11;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.038 c
6-1157356395
IdSNMP
2006-09-04 11:53
2007.02.11
Что про IdSNMP ни кто не просвятит?


6-1157662385
Officeman
2006-09-08 00:53
2007.02.11
IdHTTP1. как получить контент страницы html ?


1-1166611676
_ozzy_
2006-12-20 13:47
2007.02.11
Как запретить подтверждение на замену(удаление) Windows?


1-1166170813
MegaVolt
2006-12-15 11:20
2007.02.11
Дополнительные поля для TColumn в TListView


1-1165021404
allrussia
2006-12-02 04:03
2007.02.11
Закрепление и привязка компонентов на форме