2013-11-19 1 views
3

Мне нравится ListViews. На самом деле, я пойду так, чтобы сказать, что мне нравится ListViews. Настолько прост в использовании, особенно при добавлении новых элементов, удалении элементов, подсчете предметов и пробегах по всем элементам.Динамический массив Delphi, который работает как ListItem в ListView

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

Что-то вроде этого:

  • Добавление новых элементов с помощью кода, как ListItem: = ListView1.Items.Add;
  • Вы можете ссылаться на элементы, аналогичные ListView1.Items.Item [I]
  • Вы можете удалить элементы с помощью кода, как ListItem.Free (или ListView1.Items.Item [I] .free), и она автоматически повторно индексы остальные пункты
  • Вы можете сосчитать предметы, как ListView1.Count

ли кто-нибудь есть «шаблон» в виде отсутствия визуального компонента, который будет давать такую ​​же функциональность для добавления элементов, удаление элементов и подсчета предметов в динамическом режиме?

Или существуют ли невизуальные компоненты, которые я мог бы наследовать, чтобы дать мне функциональность, которую я ищу?

+3

Вы имеете в виду [TObjectlist] (http://docwiki.embarcadero.com/CodeExamples/XE3/en/Generics_Collections_TObjectList_ (Delphi))? – whosrdaddy

+0

Прошло некоторое время с тех пор, как я коснулся Delphi, но это [ArrayList] (http://www.delphibasics.co.uk/NameSpace.asp?Name=System.Collections&Part=ArrayList) не примерно то, что вы ищете? – OGHaza

+1

См. Документы в [Работа с списками] (http://docwiki.embarcadero.com/RADStudio/XE5/en/Working_with_Lists) для довольно полного описания классов типа списка, которые являются частью самого Delphi (все из которых являются «невизуальными»). –

ответ

4

Посмотрите на Generics.Collections единица. Он состоит из нескольких классов, которые вы ищете. Особенно, TObjectList.

+0

Это применимо только в том случае, если он использует Delphi 2010 и далее. –

+1

Я думаю, что это будет то, что я ищу, извне, к сожалению, примеры Embarcadero используют < >, которого я никогда раньше не видел в коде Delphi. Обычно < > представляет «заменить что-то релевантное», но, похоже, я не могу заставить свой код работать, несмотря на то, что он копирует и вставляет код Embarcadero как есть. Я задам еще один вопрос, связанный с TObjectList (после выполнения некоторых поисковых запросов). Спасибо за ответ, я думаю, что это то, что я ищу. – KeyszerS

+0

@ KeyszerS, вы не указали свою версию Delphi, поэтому мы предполагаем, что у вас есть последняя версия. для Pre D2010 вы можете найти не общую версию TObjectList в модуле Contnrs. – whosrdaddy

Смежные вопросы