Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблемы с динамическими массивами


Fanny ©   (2005-07-05 07:56:00) 

У кого-нибудь были?
В частности при изменении длины.


GMax   (2005-07-07 23:38:00) [1]

я ловил подобный глюк. причём в 5 дельфях глючило, а в 7 - нет (или наоборот - не помню). глючило при присвоении текста хинтам MCKmdvToolTip.
глюк живёт внутри заменённых системных библиотек. где точно, надо трассировать, сейчас не помню.
в одной из них есть проверка регистра на ноль, а в другой нету.
вылечивалось принудительным присвоением регистра в самом начале dpr:
[...]
begin
asm xor edi, edi; end;
{$IFDEF KOL_MCK} {$I prog_0.inc} {$ELSE}
[....]


ECM   (2005-07-06 17:00:00) [2]

>если проект упрощённо перенести на VCL, то всё работает
я так понимаю, что упрощение идет с КОЛ-проекта...
... а если точно так же упроститьв КОЛ? - не верю что не будет работать... можете выслать мне на мыло такой НЕ РАБОТАЮЩИЙ КОЛ-проект...
тут дело в другом (усложняющем) коде...ИМХО


Fanny   (2005-07-06 16:54:00) [3]

Дело в том , что если проект упрощённо перенести на VCL, то всё работает. Трассировка показала, что сбой происходит при вызове DynArraySetLength перед ret. Причём такая беда только в KOL. На VCL - всё ОК. Наверное действительно придётся перейти на статику.


MTsv DN   (2005-07-06 09:24:00) [4]

2 Fanny
Почитай вот это:
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1120570960&n=0

С Уважением MTsv DN


MTsv DN   (2005-07-06 09:19:00) [5]

>>как вообще это может быть?
Использовать статический массив...

У меня была такая проблема. Сканирование дерева каталогов и запись в динам. массив файлов с определенным расширением. Так вот приработе с SetLength происходил сбой, причем когда будет сбой неизвестно... Сечас использую статику, до тех пор пока не найду как исправить глюк.

P.S. Вообще-то, эта тема к KOL не имеет никакаго отношения...
2 Fanny
И на "Основном" форуме, и на форуме "WinAPI" эту темы уже рассматривали...

С Уважением MTsv DN


Fanny   (2005-07-06 07:55:00) [6]

пересоздал проект (вечер и ночь)
всё тоже самое, только теперь глючит при НАРАЩИВАНИИ массива
как вообще это может быть?


Davlegov   (2005-07-06 00:47:00) [7]

i<0 ?


Fanny   (2005-07-05 09:30:00) [8]

есть три массива (динамических)
A,B,C : array of integer; // глобальный
i : integer;              // локальная
при наращивании:
inc(i);
SetLength(A,i);
SetLength(B,i);
SetLength(C,i);
всё нормально, а при уменьшении
dec(i);
SetLength(A,i);
SetLength(B,i);
SetLength(C,i);
первый раз проходит нормально, второй раз приложение завершается.
пошаговое выполнение показывает, что завершение наступает после нажатия F8, когда курсор (синяя полоса) выделяет SetLength(B,i);
приложение завершается без каких-либо сообщений об ошибке.
связано ли это с Range checking ?
почему первый раз проходит нормально ?
зависит ли это от версии KOL и Delphi ?
как можно достоверно узнать что происходит в мосент завершения программы (отловить выход) ?


&lt;Falcon&gt;   (2005-07-05 09:18:00) [9]

А так чтобы было понятно? Какие могут быть проблемы с массивами?
Для изменения длины  массива - SetLength(arrayname,newlength)
И какое это отношение имеет к KOL?


Наверх

Титульная страница Поиск, карта сайта Написать письмо