Столкнулся с злобным глюком в formTreeControl. При добавлении нового узла обрезается его текст до 249 символов. Причем только что созданный formTreeItem возвращает правильную строку (то есть где-то она все-таки сохраняется полностью), а если его взять из formTreeControl.getItem(), то происходит обрезка.
Вот пример:
PHP код:
void TestTree(formTreeControl _Tree)
{
str TestString, NewItemText, GetItemText, InfoStr;
int i, ItemIdx;
formTreeItem Item;
// создадим длинную строку
for (i=0; i < 100; i++)
TestString = TestString + " " + int2str(i);
// добавим новый узел в дерево
Item = new formTreeItem(TestString);
ItemIdx = _Tree.addItem(0, 0, Item);
// получим строки из только что созданного узла и из него же, взятого из дерева
NewItemText = Item.text();
GetItemText = _Tree.getItem(ItemIdx).text();
// теперь сформируем информ. окошко
InfoStr = TestString + "Длина: " + int2str(strlen(TestString));
InfoStr = InfoStr + "\n\n" + NewItemText + "Длина: " + int2str(strlen(NewItemText));
InfoStr = InfoStr + "\n\n" + GetItemText + "Длина: " + int2str(strlen(GetItemText));
// сравним результаты
BOX::info(InfoStr);
}
В итоге получаем такое вот окно:
Если кто-то сталкивался с этим, подскажите, можно ли это обойти, или строка обрезается безвозвратно? А почему тогда Item.text() (см. код) делает все правильно?..
PS: Кстати, предложение админам: на форуме уже проскакивала идея создать отдельную группу топиков для описания глюков и багов системы. Поддерживаю эту идею. Это поможет начинающим сэкономить время. Название можно сделать, например, "Грабли"