Вверх ↑
Администрация
Ответов: 15295
Рейтинг: 1519
#1: 2009-08-17 17:58:46 ЛС | профиль | цитата
Assasin писал(а):
А в чем же тогда тайна runtimeerror

в обращение к "левому" полю ldata

#hws
0: Result := TextWidth(dt);
1: Result := TextHeigh(dt);
...
dtInteger(_Data,TextWidth(dt));
...
dtInteger(_Data,TextHeigh(dt));
-> именно это одна из главных причин, по которой использование TData в качестве аргументов вызова методов внутри элемента не рекомендуется.

Собственно вся логика элемента не продумана до конца. Поскольку имеется зависимость от внешнего контекста, то нужно было делать процедуру doInit(или что-то вроде), в которой получать этот самый контекст и сохранять его для использования во всех остальных методах(в частности в TextWidth и TextHeigh). Сегодня в качестве контекста передается неинициализированный dt, что очевидно работать никогда не будет.
карма: 27
0