Добавление модуля или новой формы в Delphi вызывает нарушение прав доступа - PullRequest
0 голосов
/ 26 сентября 2018

Когда я добавляю файл или форму в проект Delphi, часто я получаю нарушение прав доступа.Затем мне нужно перезапустить Delphi, открыть проект и попробовать снова.Тогда иногда это работает, иногда я получаю такое же нарушение прав доступа.У меня эта проблема во всех версиях Delphi, начиная с XE8.

Другие программисты Delphi, похоже, имеют те же проблемы, что и здесь, в Сообществе Embarcadero: https://community.embarcadero.com/forum/programming/9387-creating-a-new-unit-or-new-form-in-delphi-10-2-3-causes-access-violation

Некоторые люди говорят, что этовызвано библиотеками третьей части.Я сомневаюсь, что.Когда вы смотрите на трассировку стека, нет сторонней библиотеки.

Воспроизвести:

  • Работать в (несколько) большем проекте и вносить некоторые изменения в код перед добавлением модуля.
  • Добавьте новый модуль / форму: Файл> Новый> Модуль - или добавьте существующий файл с помощью перетаскивания или «Добавить файл в проект» - Или удалите файл из проекта.

1 Ответ

0 голосов
/ 26 сентября 2018

Я связался с Embarcadero по этому поводу.Они знают об этой проблеме, и они ответили следующим образом:

Это из-за некоторого кода Castalia, который объединен в Delphi начиная с XE8.Эту проблему можно уменьшить, только так будет реже.Используйте: Инструменты - Параметры - Параметры редактора - Цвет - Структурная подсветка и выключите все.

Глядя на то, как код интегрируется в IDE, это приводит к меньшему разбору и перерисовке редактора.Независимо от этого обработчик, который вызывает нарушение прав доступа, по-прежнему подключен к редактору.

Так что, в основном, нам придется подождать, пока это будет исправлено в 10.3 .

Но через некоторое время я обнаружил, что только нарушение доступапроисходит, если вы закрыли файл проекта «dpr».В качестве обходного пути:

Не закрывайте dpr-файл, и вы не получите нарушение Access .

...