| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > динамические массивы типа запись |
| Автор: СЭНСЭЙ 15.6.2014, 16:09 | ||
| Пишу игру на делфи 7. Использую динамические массивы типа Record Допустим:
Подскажите есть ли функции в делфи или сторонние бибилиотеки для работы с такими массивами. Есть ли какие то наработанные алгоритмы для работы с такими массивами. Самое главное - удаление элемента по индексу. |
| Автор: drkot 15.6.2014, 22:09 |
массивы не предназначены для удаления элементов, алгоритмы есть, но они менее эффективны чем у списков. так что стоит обратить внимание на класс TList |
| Автор: СЭНСЭЙ 16.6.2014, 01:33 |
| Не подходит мне TList так что буду обходится своими наработанными методами |
| Автор: drkot 22.6.2014, 04:16 |
осмелюсь спросить, ЧЕМ? |
| Автор: Beltar 22.6.2014, 17:45 |
| Блин, TList внутри и есть динамический массив. Хватит тупить. И вообще дженерики спасут отца русской демократии от бесконечного тайпкаста. |
| Автор: СЭНСЭЙ 26.6.2014, 22:39 |
| А вы мне можете пример какой нибудь привести? А то ругаетесь непонятными словами. |
| Автор: PointerToNil 26.6.2014, 23:30 |
| дженерики в дельфи 7 НЕ спасут люби книгу, твою мать - источник знаний! связные списки: http://sdb.su/programmirovanie/delphi/239-fundamentalnye-algoritmy-i-struktury-dannyx-v-delphi-chast-3-iz-14.html и второй незаменимый источник - исходники на всякий случай, там TList: %ProgramFiles%\Borland\Delphi7\Source\Rtl\Common\Classes.pas |
| Автор: СЭНСЭЙ 27.6.2014, 18:39 |
Тем кто любит книги на форуме в разделе для новичков делать нечего. Мне на вокзале в справочном бюро никогда не отвечали "люби расписание - твою мать" Добавлено через 5 минут и 13 секунд А, да в Делфи же есть исходники. Форум можно закрывать, а вместо него выложить исходники. |
| Автор: Rennigth 29.6.2014, 23:07 |
| СЭНСЭЙ, все-таки к TList присмотрись... если так уж исходники динамиков нужны, то из него и бери, уже все отлаженно. Добавлено через 2 минуты и 26 секунд там только привязка на Pointer-ы а к ты на эти поинтеры свои рекорды привязывай. |
| Автор: CynicRus 3.7.2014, 22:41 | ||||||
Приведу пример такого TList:
Вместо класса TDTMPoint - используешь свой TRecord. Можно унифицировать, если отказаться от рекордов. Делаешь абстрактный класс с базовыми свойствами, и реализацию на основе TList для этого, например:
Затем типы, которые необходимо загонять в списки - наследуешь от своего абстрактного класса, например:
Потом создаёшь под этот тип экземпляр класса списка, и используешь с удобством списка. Без ручных велосипедов с массивами. При желании - можно запилить метод сортировки как Virtual;Abstract; затем унаследоваться - и впилить для каждого экземпляра ту сортировку, какую треба. Такой путь работает и в Delphi 7 и в XE > XE6. |