Доброе всем время суток.
Камрады, кто-нибудь сталкивался вот с таким:
На форме есть TChart, назовем его CH. Переписываем его через TReader.ReadRootComponent. При попытке убить CH получаем AV
Access violation at address 09472F8E in module 'osa_chart.dll'. Read of address 005D6000.
Соответственно, то же самое происходит при закрытии формы. Как бороться - непонятно
Упреждая некоторые вопросы.
1. Stream.ReadComponent не прокатывает, пробовал
2. Ежели не загружать CH из ридера, все нормально работает.
3. Owner загруженому чарту стаится правильный.
4. Загружается все ровно и правильно, как было сохранено - то и получаю.
Кусок кода, как загружается:
Код:
var St: TMemoryStream;
...
St.Seek(0,2); St.Seek(0,0);
R := TReader.Create(St, 4096);
FreeAndNil(CH); // пробовал и не убивать - те же косяки
CH := R.ReadRootComponent(nil) as TChart;
CH.Parent := Self;
InsertComponent(CH);
FreeAndNil(R);
Вот, примерно так.