Ответ: 2 вопроса по MP
1. Чистить память пусть косвенно, но можно. Допустим, тебе нужно очистить оперативную память от ненужных картинок img1 и img2. При объявлении переменных сразу объявляешь не 2, а 3 картинки примерно так:
Var img1, img2, spacer: image;
Как известно, картинки нужно же ещё и загружать примерно так:
img1:=LoadImage('/image.png'); img2:=LoadImage('/fon.png');
Заметь, картинка spacer как бы не загружена, то есть фактически она равна null (указывает на несуществующую картику). Тогда для очистки памяти достаточно будет написать пару операторов:
img1:=spacer; img2:=spacer;
И всё. Через какое-то время начнет работать Сборщик Мусора (aka Garbage Collector), он и почистит память от неиспользуемых картинок т.к. они в памяти есть, но ни одна из переменных на них не ссылаются.
Для ускорения вызова Сборщика Мусора нужно вызвать метод gc(). Правда делать это можно только из Java, а из MIDlet Pascal пока никак. Даже дополнительной библиотеки для работы со Сборщиком Мусора я так и не обнаружил. Досадное недоразумение. Может, со временем появится? Писать там строк 5 всего.
Если картинка используется только один раз (например, заставка), то её лучше в переменные и не загружать:
DrawImage(LoadImage('/logo.png'), 0, 0); Repaint; Delay(1000);
2. Можно. Правда пока только для массивов строк. Есть такая библиотека Lib_vdata называется. Там можно добавлять текстовые строки в массив и при этом он будет автоматически расширяться. Очень удобно при чтении названий файлов в какой-нибудь директории когда не знаешь толком сколько же там этих файлов.
Последний раз редактировалось odd, 16.06.2008 в 08:43.
|