Под впечатлением вот этого обсуждения:
http://forum.mazzy.ru/index.php?show...=0&#entry20371 хотел бы поделиться элементарным классом на основе ImageListAppl, который способен работать с именованными ресурсами/картинками, сохраненными в AOT (работает, естественно, только в 3.0).
Задача модифицированного класса - выдавать порядковый номер ресурса не по номеру, а по имени. Сначала объявляем map
PHP код:
imageNameConvert = new Map(Types::String, Types::INTEGER);
Затем реализовываем метод, который может вызываться из build()
PHP код:
public void addNamedResource(IdentifierName _ressName)
{
int imageNum;
Image image;
ResourceNode resourceNode;
try
{
if (_ressName)
{
Image = new Image();
resourceNode = SysResource::getResourceNode(_ressName);
resourceNode.AOTload();
image.setData(SysResource::getResourceNodeData(resourceNode));
imageNum = imagelist.add(image);
imageNameConvert.insert(_ressName, imageNum);
}
}
catch
{
warning(strfmt("@SYS70565", _ressName));
}
}
После этого аналогом метода image() будет следующий:
PHP код:
public int imageName(IdentifierName _ressName)
{
if (imageNameConvert.exists(_ressName))
return imageNameConvert.lookup(_ressName);
...
}
Преимещества по сравнению с картинками, которые хранятся на диске и которые надо каждый раз копировать на новую инсталляцию, очевидны.