|
|
|
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
|
|||
|---|---|---|---|
|
#18+
Доброго дня. Уважаемые, помогите советом. Столкнулся с такой парадоксальной проблемой в Delphi 7. Открыл одну форму старого проекта. Форма чрезвычайно перегружена вкладками, гридами, датасетами. Всего задекларировано на форме 2097 объектов. И в модуле километры кода. Нужно было добавить еще один обработчик. Случайно обнаружил, что при компиляции часть кода помечается как «неиспользуемый» - не ставятся «синие точки» слева (неверно! код гарантированно выполняемый!) и не работают точки останова. При чем, на «неиспользуемой» строке предсказуемо красная строка точки останова становится зеленой, а на строке кода, которую компилятор пометил как «используемую» (синяя точка стоит), точка останова ставится (красная), но в момент выполнения на ней программа не останавливается. При этом, в обоих случаях программный код благополучно выполняется!! Итого две проблемы: 1. В момент компиляции неверно определяется «исполняемая/неисполняемая» строка программного кода 2. Нигде и не при каких условиях не работают точки останова Замечу, что в остальных формах проекта таких проблем нет. Далее было долгое и мучительное ковыряние причин. Было предположение, что где-то в каком-то куске кода проблемы, может быть какой-то спец-символ стоит и ведет Дельфю к неадекватности. В итоге пришли к такой картине – Весь, абсолютно весь программный код был удален. Оставлен только: procedure TXXXForm.FormCreate(Sender: TObject); begin showmessage('!!'); end; на showmessage стоит точка останова и она НЕ работает. Тупик. Далее абсолютно случайно был удален один очень «тяжелый» cxGrid, содержащий в себе десяток левелов с ДиБиТайблВьюхами в каждой из которых около 30 колумнов, компиляция, запуск и…. точка останова сработала. Далее, после очень большого количества экспериментов пришел к выводу – виной всему количество объектов на форме. Произвольное удаление ЛЮБЫХ объектов в существенном объеме приводит к тому, что точка останова начинает работать корректно. Был удивлен таким положением дел. Уважаемые, что скажите? Как побороть? Заранее – спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2019, 11:47 |
|
||
|
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
|
|||
|---|---|---|---|
|
#18+
Ребилд проекта сделайте. Предварительно удалите все DCU. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2019, 11:48 |
|
||
|
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
|
|||
|---|---|---|---|
|
#18+
Прохор, Открыть исходник в Notepad++, поменять концы строк сначала на Unix (LF), потом на Windows (CR LF), сохранить исходник. После этого проверьте. P.S: Я надеюсь вы сообразили сделать резервную копию проекта перед всеми экспериментами? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2019, 12:05 |
|
||
|
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов Рустам, не помогло (( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2019, 12:24 |
|
||
|
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
|
|||
|---|---|---|---|
|
#18+
Прохор Гаджимурадов Рустам, не помогло (( Точки останова расположенные не в тех местах говорят о том, что текстовый код и скомпелированный с DCU отличаются. То есть DCU цепляются с другого места ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2019, 12:34 |
|
||
|
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
|
|||
|---|---|---|---|
|
#18+
Приложи проект архивом (сторонние либы используются) ? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2019, 12:34 |
|
||
|
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
|
|||
|---|---|---|---|
|
#18+
alekcvp, не помогло (( Гаджимурадов Рустам постараюсь сделать отдельный маленький проектик с одной этой формой и выложу. чуть позже. Еще раз подчеркну главный момент - я не вношу никаких изменений, просто удаляю с формы произвольные компоненты с формы и все работает. мне кажется это ключевое. но могу и ошибаться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2019, 12:39 |
|
||
|
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
|
|||
|---|---|---|---|
|
#18+
ПрохорБыл удивлен таким положением дел.А таким кол-вом кода и объектов не удивлен ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2019, 12:39 |
|
||
|
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
|
|||
|---|---|---|---|
|
#18+
L_argo ПрохорБыл удивлен таким положением дел. никогда и нигде не встречал инфы, что есть какие-либо подобные ограничения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2019, 12:45 |
|
||
|
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
|
|||
|---|---|---|---|
|
#18+
DimaBr Прохор Гаджимурадов Рустам, не помогло (( Точки останова расположенные не в тех местах говорят о том, что текстовый код и скомпелированный с DCU отличаются. То есть DCU цепляются с другого места Чаще встречалось из-за того что код откуда-то копировался и вставлялись нестандартные концы строк. И тогда у компилятора "съезжали" номера строк, относительно редактора. Т.е. где-то в коде точек не было, а где-то они были на неисполняемых строках, типа procedure blabla... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2019, 12:52 |
|
||
|
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
|
|||
|---|---|---|---|
|
#18+
Создайте новый проект, скопируйте в него вашу "тяжёлую" форму, сохраните в отдельную папочку и компельните. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2019, 12:55 |
|
||
|
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
|
|||
|---|---|---|---|
|
#18+
Вот, кому интересно. Во вложении тестовый мини- проектик, с одной этой формой. Все помаксимому вырезал и лишнее убрал. Нужна devexpress библиотека. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2019, 13:03 |
|
||
|
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
|
|||
|---|---|---|---|
|
#18+
Toolbar2000 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2019, 13:15 |
|
||
|
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
|
|||
|---|---|---|---|
|
#18+
DimaBr Toolbar2000 ? да, про него забыл. Toolbar2000 + DevExpress. Больше, кажется, ничего нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2019, 13:17 |
|
||
|
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
|
|||
|---|---|---|---|
|
#18+
Выкинул T2000 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2019, 13:33 |
|
||
|
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
|
|||
|---|---|---|---|
|
#18+
DimaBr, с удаленным тулбаром у меня аналогично (см.вложение). Такого же результата добиваюсь, если с формы произвольно удалить несколько любых других объектов. В том виде, что выложил в архиве, т.е. без удаления тулбара либо любых других объектов - результат как в первом сообщении. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2019, 13:44 |
|
||
|
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
|
|||
|---|---|---|---|
|
#18+
Такое ощущение, что кто-то лохматит бабушку. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2019, 13:47 |
|
||
|
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов Рустам, ??? мне сделать видео с экрана? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2019, 13:53 |
|
||
|
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
|
|||
|---|---|---|---|
|
#18+
Прохор В том виде, что выложил в архиве, т.е. без удаления тулбара либо любых других объектов - результат как в первом сообщении. Ваш архив подразумевает установку T2000, коего у меня нет. Очень сомневаюсь, что удаление ТВ может повлиять на компиляцию. Видал формы и поболее, которые прекрасно компиляются. Некорректные точки останова встречал только из-за неправильного подхватывания DCU. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2019, 13:55 |
|
||
|
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
|
|||
|---|---|---|---|
|
#18+
Ну проверьте пути каталогов в опциях проекта. И добавьте что-нибудь ненужное на форму - label, кнопку. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2019, 13:55 |
|
||
|
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
|
|||
|---|---|---|---|
|
#18+
DimaBr прекрасно компиляются ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2019, 13:59 |
|
||
|
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
|
|||
|---|---|---|---|
|
#18+
DimaBr, Проект компилится и запускается с тулбаром и без него! Вопрос только в том - работает или нет точка останова. Удаление тулбара (который содержит большое количество элементов) в данном случае эквивалентно удалению, допустим одного или двух гридов. Т.е. кол-во объектов на форме уменьшается, точка останова появляется. Сейчас постараюсь сделать видео с экрана (только без звука) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2019, 14:01 |
|
||
|
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2019, 14:11 |
|
||
|
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
|
|||
|---|---|---|---|
|
#18+
Прохор Удаление тулбара (который содержит большое количество элементов) в данном случае эквивалентно удалению, допустим одного или двух гридов. Удалите тулбар и добавьте пару сотен Хранимых процедур, чтобы количество компонентов не уменьшалось ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2019, 14:29 |
|
||
|
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
|
|||
|---|---|---|---|
|
#18+
Для чистоты эксперимента, переименуйте форму и сохраните под новым именем ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2019, 14:31 |
|
||
|
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
|
|||
|---|---|---|---|
|
#18+
DimaBr, удалил, вместо сотни хранимок скопипастил жирный грид Форму переименовал. Результат тотже ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2019, 15:15 |
|
||
|
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2019, 15:45 |
|
||
|
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
|
|||
|---|---|---|---|
|
#18+
Прохор, А какие-нибудь cnWizards не установлены? И вообще если отключить эксперты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2019, 15:54 |
|
||
|
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
|
|||
|---|---|---|---|
|
#18+
DimaBr, версия дельфей какая? сейчас перепроверил еще на одной рабочей станцией с D7 - результат аналогичен моему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2019, 15:59 |
|
||
|
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
|
|||
|---|---|---|---|
|
#18+
Сделал пустой проект, кинул cxGrid и добавил в него 100 колонок. Наплодил 25 гридов. Действительно, после некоторого количества строк пропадает точки компиляции в D7 !!! Что можно посоветовать ? 1. Перенести запросы в DataModule 2. Создавать колонки типа Day1, Day2 ..... динамически 3. Перенести View в DataModule (использовать cxViewRepoditory) Думаю, что этих действий вполне будет достаточно Тут человек тоже пишет об этой проблеме в D7 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2019, 21:13 |
|
||
|
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
|
|||
|---|---|---|---|
|
#18+
У меня такое периодически бывает. Когда я создаю новы проект путем копирования папки под новым именем и открываю проект изнутри новой, и забываю, что открытые автоматом модули проекта - на самом деле из старой папки, и когда я их редактирую - отладчик так и скачет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2019, 22:05 |
|
||
|
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
|
|||
|---|---|---|---|
|
#18+
DimaBr ...кинул cxGrid и добавил в него 100 колонок. Наплодил 25 гридов. Возможно, разум IDE таким образом борется с неразумными программистами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2019, 00:57 |
|
||
|
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
|
|||
|---|---|---|---|
|
#18+
ёёёёё Возможно, разум IDE таким образом борется с неразумными программистами. В последующих версиях отказались от этой затеи, поняв что неразумных не победить ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2019, 01:03 |
|
||
|
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
|
|||
|---|---|---|---|
|
#18+
DimaBr, Толерантность повысилась. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2019, 01:39 |
|
||
|
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
|
|||
|---|---|---|---|
|
#18+
DimaBr Сделал пустой проект, кинул cxGrid и добавил в него 100 колонок. Наплодил 25 гридов. Действительно, после некоторого количества строк пропадает точки компиляции в D7 !!! Что можно посоветовать ? 1. Перенести запросы в DataModule 2. Создавать колонки типа Day1, Day2 ..... динамически 3. Перенести View в DataModule (использовать cxViewRepoditory) Бинго! В качестве еще одного решения могу добавить - перевод каких-то объектов на фреймы. Но вопрос все-же остается - можно ли это как-то победить? Какие-то директивы компилятора? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2019, 08:14 |
|
||
|
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
|
|||
|---|---|---|---|
|
#18+
DimaBr ёёёёё Возможно, разум IDE таким образом борется с неразумными программистами. В последующих версиях отказались от этой затеи, поняв что неразумных не победить ? Я не тестировал последние... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2019, 08:19 |
|
||
|
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
|
|||
|---|---|---|---|
|
#18+
Прохор Но вопрос все-же остается - можно ли это как-то победить? Какие-то директивы компилятора? Никак. Перейти не версию посвежее, уменьшить количество объектов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2019, 08:53 |
|
||
|
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
|
|||
|---|---|---|---|
|
#18+
Все невизуальные дата-объекты лучше выносить в датамодули. Может, тогда и проблема решится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2019, 10:39 |
|
||
|
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
|
|||
|---|---|---|---|
|
#18+
ёёёёё Возможно, разум IDE таким образом борется с неразумными программистами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2019, 00:07 |
|
||
|
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
|
|||
|---|---|---|---|
|
#18+
Василий 2 Все невизуальные дата-объекты лучше выносить в датамодули. Может, тогда и проблема решится. Мегапомойки с кодлой объектов - зло! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2019, 15:43 |
|
||
|
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
|
|||
|---|---|---|---|
|
#18+
Ivan_Pisarevsky Мегапомойки с кодлой объектов - зло! На самом деле, это называется Божественный объект Но обычно, Делфи-разработчики не читают про шаблоны и прочую туфту. т.к. у них 20 лет опыта подобной разработки и т.п. п.с. Посмотрел ссылки на видео с ютуба. Возник вопрос - это для таких проектов в вакансиях пишут требование "Умение разбираться в чужом коде" ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2019, 11:27 |
|
||
|
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
|
|||
|---|---|---|---|
|
#18+
Valery_B Ivan_Pisarevsky Мегапомойки с кодлой объектов - зло! На самом деле, это называется Божественный объект Но обычно, Делфи-разработчики не читают про шаблоны и прочую туфту. т.к. у них 20 лет опыта подобной разработки и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2019, 15:21 |
|
||
|
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
|
|||
|---|---|---|---|
|
#18+
В некоторых случаях решается через удаление необязательных объектов . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2020, 10:40 |
|
||
|
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
|
|||
|---|---|---|---|
|
#18+
Ivan_Pisarevsky Тот еще мрак. У нас есть в аккурат такая помойка с изобилием глобальных объектов (за такое кол-во глобальных датасетов и прочей хрени руки чешутся поколотить того, кто это придумал), так вот она(среда разработки) стала падать ровно с теми же симптомами, пока не уменьшили число объектов и спец приказом коллегам запретили туда добавлять что-либо. Мегапомойки с кодлой объектов - зло! Открою один страшно секретный секрет: датамодулей может быть больше одного! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2020, 16:00 |
|
||
|
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
|
|||
|---|---|---|---|
|
#18+
09.01.2020 16:00, Василий 2 пишет: > > Открою один страшно секретный секрет: датамодулей может быть больше одного! одной кучи говн@ кому-то может быть мало... Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2020, 16:12 |
|
||
|
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
|
|||
|---|---|---|---|
|
#18+
Ну конечно, лучше иметь эту кучу говна на форме))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2020, 19:46 |
|
||
|
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
|
|||
|---|---|---|---|
|
#18+
Василий 2 Ну конечно, лучше иметь эту кучу говна на форме))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2020, 21:51 |
|
||
|
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
|
|||
|---|---|---|---|
|
#18+
YuRock Принципиальной разницы нет)) Нет, кроме сабжа :-Р Ну и дурацкой идеи о каком-никаком разделении слоёв доступа к данным и отображения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2020, 10:59 |
|
||
|
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
|
|||
|---|---|---|---|
|
#18+
10.01.2020 10:59, Василий 2 пишет: > Ну и дурацкой идеи о каком-никаком разделении слоёв доступа к данным и отображения. хочешь разделения - юзай жабу, (т)очко.нет и прочие фреймворки/языки с насаждаемым ORM-ом. в Delphi оно чужеродное и трудно пришиваемое белыми нитками (на соплях). Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2020, 11:44 |
|
||
|
|

start [/forum/topic.php?all=1&fid=58&tid=2038703]: |
0ms |
get settings: |
6ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
149ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
81ms |
get tp. blocked users: |
1ms |
| others: | 206ms |
| total: | 478ms |

| 0 / 0 |
