Page 1 of 1

На счет ошибки ListIndex Out Of Bounds

Posted: Thu Jan 31, 2008 8:20 pm
by liabach
Как показал глубокий анализ вашего кода, вы, по-моему мнению допустили ошибку в модуле SclRView в процедуре TSRichViewEdit.DrawComponents
Было :
for ItemNo := StartItemNo to EndItemNo do
case RVData.GetItemStyle(ItemNo) of
rvsComponent :
begin
..........

и это вызывало ошибку при :
1. Вставка текста из буфера с последующим вызовом команды UnDo
2. Некоторых случаев нажания BackSpace
3. И Выполение InsertText

А имено, как я понимаю, проблемы в получением кол-ва элементов в RVData.
Вариант который это фиксит :

begin
RVData.UpdateItemsPaletteInfo; // обновляет как я понял RVData
for ItemNo := StartItemNo to RVData.ItemCount - 1 do //у вас получались разные значения в EndItemNo с реальным кол-вом в RVData
// for ItemNo := StartItemNo to EndItemNo do
case RVData.GetItemStyle(ItemNo) of
rvsComponent :
begin
......

И это вобщем работает. Потестили ошибок пока не выявили. Если мы не правы и если это что-то затронит - сообщите.

:!:

Posted: Sun Feb 03, 2008 5:30 pm
by proxy3d
В этом месте кода нет ошибки. Ошибка вызвано тем, что при форматировании вызывается перерисовка, которая не должна происходить. Сейчас готов новый релиз, на днях мы его выложим.