Control + Click on function не работает в Delphi XE

В Delphi 7 всякий раз, когда я управляю + щелкаю по функции / процедуре, я перехожу к этой функции / процедуре. Но это не работает в Delphi XE - по крайней мере, не со всеми функциями. У меня есть функция под названием Associate в ExtUtils.pas Функция скомпилирована правильно, поэтому компилятор может найти ExtUtils.pas (и, конечно, ExtUtils добавляется в предложение Uses, а его папка - в «Путь к библиотеке»). Но когда я управляю + щелкаю по функции или имени модуля, это меня не ведет.

Как это исправить?


ОБНОВЛЕНИЕ1: Кроме того, Control + Click на функции (объявить в текущем модуле) не перемещает курсор в разделе INTERFACE, где объявлена ​​функция.

ОБНОВЛЕНИЕ 2:
Я временно поместил модуль ExtUtils в папку проекта, и теперь он работает. Итак, Control + Click сам по себе работает, но кажется, что у IDE есть проблемы с поиском устройства, даже если его папка присутствует в пути к библиотеке и пути просмотра.

Подобные отчеты:
http: //webcache.googleusercontent .com
http://webcache.googleusercontent.com
http://cc.embarcadero.com/Item/28269
Один отчет прямо здесь (см. ответы ниже)


Новый тест:
Я полностью удалил Delphi (и вручную удалил файлы и остатки реестра). Потом снова переустановил. Никаких дополнительных инструментов, кроме CodeSite, не было, даже баз данных. Затем я создал новый проект. Он содержит кнопку. Когда я нажимаю кнопку, запускается процедура TestMe, которая определена во внешнем файле PAS с именем TestUnit.Pas. Я добавил путь к этой библиотеке в Путь к библиотеке и Путь просмотра. Но процедура Control + Click на TestMe по-прежнему не работает! Если я наведу указатель мыши на процедуру TestMe, появится всплывающее окно «Объявлено в TestUnit», где слово «TestUnit» - это синяя ссылка. Если я нажимаю на нее, я слышу системный звук Windows, но среда IDE не переносит меня туда (к устройству).

Процедура TestMe такова:

procedure TestMe;
begin
  Beep(800, 500);
end;

Если я контролирую + щелкаю процедуру Beep, я перехожу к Windows.pas. Итак, это работает. Сообщите мне, если вы планируете другой тест.

ОБНОВЛЕНИЕ:
И теперь это работает! Без видимых причин! Я просто открывал, закрывал и компилировал проект. Но я не вношу никаких изменений в Delphi, кроме этих двух: Параметры автосохранения-> Файлы редактора и Параметры проекта.

ОБНОВЛЕНИЕ:
Этого не может быть !!!
Итак, теперь я могу получить доступ к файлу TestUnit.pas, когда я контролирую + нажимаю на процедуру TestMe. Итак, я переместил исходный файл PAS (ExtUtils.pas), который не хотел работать в моем первоначальном тесте (до переустановки Delphi), в ту же папку, где находится TestUnit.pas. Угадайте, что: я могу открыть (Ctrl + щелчок) TestUnit.pas, но не ExtUtils.pas !!!!
Delphi действует так странно и непоследовательно!

ОБНОВЛЕНИЕ:
Я редактировал ExtUtils.pas и теперь не могу СНОВА открыть TestUnit.pas. Кен Уайт не позволяет мне говорить, что в Delphi могут быть ошибки. Поэтому я не могу использовать «баг» вместе с «Delphi». Кто-нибудь может соединить эти слова для меня?

ОБНОВЛЕНИЕ:
Я полностью удалил все ссылки на ExtUtils.pas - поэтому я восстановил проект до точки, в которой он работал (с TestUnit). Но теперь ошибка сохраняется.Даже если за несколько секунд до этого он работал с TestUnit, теперь он снова не работает.

ОБНОВЛЕНИЕ:
Теперь я понимаю важную вещь: в моем исходном коде (в тестовом проекте) у меня есть одна строка компилируемого кода:

procedure TForm1.Button1Click(Sender: TObject);
begin
 TestMe;
end;

Синие точки не отображаются для этого кода - поскольку он не был бы скомпилирован. В те несколько минут, когда программа работала, я увидел синие точки. Я также исключил «Параметры автосохранения-> Файлы редактора и параметры проекта» как возможную причину этой проблемы.

ОБНОВЛЕНИЕ:
Я нашел способ решить проблему ... на несколько минут: я перемещаю проект и библиотеку в другую папку (это можно сделать в любом месте). Ctrl + щелчок будет работать некоторое время. Это даже работает, если я помещаю файлы обратно в исходную папку. Итак, похоже, что Delphi хранит какой-то кеш некоторых файлов. Пока кеш сломан и сохраняет кеш, Ctrl + щелчок не работает. Но когда я перемещаю файлы, он должен воссоздать этот кеш, чтобы он работал до тех пор, пока проблема не появится снова и не будет сохранена в кеше.

9
задан 16 revs, 2 users 100% 8 June 2011 в 10:38
поделиться