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

ScaleRichView support and discussion (TRichView add-on for WYSIWYG editing)
Post Reply
liabach
Posts: 4
Joined: Mon Jul 16, 2007 11:35 am

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

Post 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
......

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

:!:
proxy3d
ScaleRichView Developer
Posts: 307
Joined: Mon Aug 07, 2006 9:37 am

Post by proxy3d »

В этом месте кода нет ошибки. Ошибка вызвано тем, что при форматировании вызывается перерисовка, которая не должна происходить. Сейчас готов новый релиз, на днях мы его выложим.
Post Reply